[mov] 봐야하는 영화, 보고 싶은 영화, 볼 영화 MOV

==친구에게 라이센스 받은 영화평점 기준==
★☆☆☆☆(0.5/5.0) : 공짜로 봐도 시간이 아까운 영화
★★☆☆☆(1.5/5.0) : 공짜로 볼만한 영화
★★★☆☆(2.5/5.0) : 조조 요금내고 볼만한 영화
★★★★☆(3.5/5.0) : 평일 요금내고 볼만한 영화
★★★★★(4.5/5.0) : 특별관(IMAX, 3D, 4DX) 요금내고 볼만한 영화.

7년의밤

월드워z2

데드풀2

베놈

쥬라기월드2

미션 임파서블6:폴아웃

맘마미아:히어 위 고 어게인

신비한동물들과 그렌델왈드의 범죄

앤트맨 앤 와스프

엑스맨:다크피닉스

메리 포핀스 리턴즈

솔로:스타워즈 스토리

마약왕

이퀄라이저2

신과함께2

프레데터

인랑

세라비:이것이 인생!

캡틴마블

아쿠아맨

알리타 (총몽)

보헤미안 랩소디

*추후 계속적인 업뎃 예정.

==========================================
2018 관람영화

퍼시픽림:업라이징 2.5/5.0

쓰리빌보드 4.5/5.0

툼레이더 2.0/5.0

리틀포레스트 3.0/5.0

플로리다프로젝트 5.0/5.0

월요일이 사라졌다 3.5/5.0

흥부 2.0/5.0

골든슬럼버 2.5/5.0

조선명탐정:흡혈괴마의비밀 3.5/5.0

블랙팬서 3.5/5.0

셰이프오브워터:사랑의모양 5.0/5.0

염력 2.5/5.0

메이즈러너:데스큐어 2.0/5.0

그것만이 내 세상 2.5/5.0

코코 5.0/5.0

원더 4.5/5.0



[iOS] touchID, faceID 정리


    LAContext * context = [[LAContext alloc] init];


기본이 되는 context.

    [context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]



생체인식 사용가능 체크. YES면 사용 가능한거. NO면 error데이터가 리턴된다. 

error에 code는 아래와 같다. 

                    case LAErrorPasscodeNotSet: // -5

                        // 폰 암호 비활성화

                        NSLog(@"LAErrorPasscodeNotSet %@", @(error.code));

                        break;

                    case LAErrorInvalidContext:

                        NSLog(@"LAErrorInvalidContext %@", @(error.code));

                        break;

                    case LAErrorBiometryNotAvailable:

                        //faceID 앱 별 사용불가 처리 시.

                        NSLog(@"LAErrorBiometryNotAvailable %@", @(error.code));

                        break;

                    case LAErrorBiometryNotEnrolled:

                        //touchID, faceID 비활성화

                        NSLog(@"LAErrorBiometryNotEnrolled %@", @(error.code));

                        break;

                    case LAErrorNotInteractive:

                        NSLog(@"LAErrorNotInteractive %@", @(error.code));

                        break;


해당 에러 코드는 LAError에서 가져온다. 

canEvaluatePolicy:error: 와 관련있는 코드는 다섯가지 인듯.

제대로 사용하기 위해선 폰 암호가 설정되어있어야하고(touch id와 face id를 사용하기 위한 선조건)

지문 등록 및 face 등록이 되어있어야 한다. 

face ID의 경우 한가지 에러가 더 추가된다. 

LAErrorBiometryNotAvailable 인데, 

face ID는 설정에서 앱별로 사용 여부를 on/off 시킬 수 있다. 

사용여부가 off되어있을때 리턴 에러 코드가 LAErrorBiometryNotAvailable


        [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics

                localizedReason:reason

                          reply:^(BOOL success, NSError * authenticationError) {}];


사용시 메소드. 

                    case LAErrorAuthenticationFailed: // 인증실패

                        ALog(@"LAErrorAuthenticationFailed %@", @(error.code));

                        break;

                    case LAErrorUserCancel: // 유저 취소

                        ALog(@"LAErrorUserCancel %@", @(error.code));

                        break;

                    case LAErrorUserFallback: 

                        ALog(@"LAErrorUserFallback %@", @(error.code));

                        break;

                    case LAErrorSystemCancel: // 홈키 입력 같은 시스템 취소

                        ALog(@"LAErrorSystemCancel %@", @(error.code));

                        break;

                    case LAErrorAppCancel// 앱에서 취소

                        NSLog(@"LAErrorAppCancel %@"@(error. code));

                        break;


실패시 에러 코드는 이렇게 되는듯. 대충 변수명으로 구분한지라. 


마지막으로... 

face ID는 info.plist에 Privacy - Face ID Usage Description 도 추가해줘야한다는거.

끝.

[iOS] UITableViewCell 안에서 버튼, gesture 이벤트 시 Cell 찾기 (indexPath 찾기) iOS

UITableviewcell didSelectRowAtIndexPath: 

로 모든 처리를 할 수 있다면 좋겠지만, 불행히 클라이언트 들은 그리 쉬운걸 요청하지 않는다. 

UITableViewCell에 UIButton, UITapGestureReconizer 이벤트가 발생할 경우 해당 이벤트가 발생한 Cell 찾기.


1. cell 자체를 사용할 목적도 있지만, cell에 표시한 data를 찾는 목적이기도 하다. 

tableview의  numberOfRowsInSection: 에서 리턴값을 보통 dataArray.count 로 주고 있어서. 

dataArray는 당연 테이블뷰에 뿌릴 리스트고. 


중요한건 cellForRowAtIndexPath 에서 셀 버튼에 타겟을 추가해줘야한다는 점. 
그리고  addTarget:action:forControlEvents:  사용시

action에 @selector(clickCellButton:event:) event까지 추가해줘야한다는 점.

세세히 본다면 xib에서 드래그로 action 추가시에도 argument를 변경할 수 있다는걸 봤을 것이다. 

거기서 보이는 변경 가능한 argument, UIEvent 되시겠다.

귀찮으니 정리하면, 

- (void)clickCellButton:(UIButton*)sender event:(UIEvent*)event {
UITouch* touch = [[event allTouches] anyObject];
CGPoint point = [touch locationInView:tableView];
NSIndexPath* indexPath = [tableView indexPathForRowAtPoint:point];

UITableViewCell* buttonCell = [tableView cellForRowAtIndexPath:indexPath];
...

id data = dataArray[indexPath.row];
...
}

indexPath를 구했으니 cell도 가져오고, array에서 해당 데이터를 가져올 수 있겠지.


여기저기 cell의 버튼 클릭 시 cell을 구하는 것에 대한 것들이 있는데 요놈으로 나는 거의다 쓰고 있다.


====================================================================================================

사실, 별 것 아닌 내용이라 정리할 생각을 안하고 있었는데, 오늘 희한한 경험을 해서. 

tableView의 크기를 가변적으로 움직이도록 만들었다. 높이값이 0에서부터 최대값까지 늘어나는 식으로. 

해당 cell에는 이미지가 작게 썸네일로 되어 있어서 이미지를 클릭시 viewcontroller에 크게 보여주는 기능을 추가했는데, 

키보드와 테이블뷰 높이를 늘였다 줄였다하다보니 클릭한 위치에 맞는 indexPath 값이 나오질 않은 것. 

iOS10만의 문제이거나 시뮬레이터의 문제일려나 싶기도 한데. 일단 대충 에러나지 않게 처리해놓고 끝. 

수정 방법은 생각치 않는다. ㅋㅋㅋ



[iOS]iTunes connect에서 Invalid Binary

신기한 경험을 했다. 

앱스토어에 바이너리를 업로드했는데, 잠시 후 connect 앱에 푸시가 invalid binary 뭐시기라고 오고, 

itunes connect 페이지에서 사라져버렸다. 


결론적으로 말하면, photokit을 사용해서 import Photos 를 사용하는 UIImageView extension 파일이 하나 있었는데,  

photo kit을 쓰는 곳은 없었다. 

하지만 Privacy - Photo 설정은 되어있지 않아 invalid라고 판단된 문제였다. 


넣은 내가 문제긴 하지만, 걸러내는 애플도 신기하긴 하다. 


결론. 
안쓰는건 넣지 말자. 

[iOS] UITextView, UILabel에 가변높이값 설정하기 iOS

http://gsstudio.egloos.com/4402261

boundingRectWithSize 함수를 사용하며 높이값 안맞는다고 짜증낸 적이 있다. 

세상에... 그냥 NSAttributeString을 사용해서 높이값을 구하면 그게 최고다.


1
2
3
4
5
6
7
8
9
10
11
12
13
NSString* string = @"가나다라마바사 동해물과 백두산이 별하나에 사랑과 별하나에 어머니";
 
NSMutableAttributedString* attr = [[NSMutableAttributedString alloc] initWithString:string];
 
[attr addAttribute:NSFontAttributeName value:[UIFont boldSystemFontOfSize:14.0] range:NSMakeRange(0, string.length)];
 
CGFloat width = [UIScreen mainScreen].bounds.size.width - 16;
 
CGRect rect = [attr boundingRectWithSize:CGSizeMake(width, MAXFLOAT) options:NSStringDrawingUsesFontLeading context:nil];
 
NSLog(@"height : %f", rect.size.height);
 
 
cs


cell에서 scrollview에서 string으로  가변 뷰의 높이 값 구할때, string과 fontsize 받는 함수로 만들어두면 끝.

이젠 좀 편하게 높이값 맞추겠다.


1 2 3 4 5 6 7 8 9 10 다음


adsence 160x600