본문 바로가기

프로그래밍/iOS,macOS

(64)
NSString 문자열 관련/정규식/텍스트뷰 등... 문자열 타입변환NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];NSString *string = [[NSData alloc] initWithData:data encoding:NSUTF8StringEncoding];const char *str = [string UTF8String];NSData *data = [NSData dataWithBytes:str length:strlen(str)+1]; 문자열을분리문자열을 배열로 분리-(NSArray*)componentsSeparatedByString:(NSString*)separator; 반대로 배열을 문자열로-(NSString*)componentsJoinedByString:(NSString*)sep..
이것저것 Objective-C 관련 노트~ 기본 메쏘드init : 객체 초기화initWithFrame / initWithCoder : 코드나 IB에서 생성할때 초기화시 호출됨awakeFromNib : IB에서 생성한 경우 각 outlet등 연결된 후 호출됨layerClass : 레이어의 코어 에니메이션 등 직접 드로잉을 하는 경우 해당 레이어 객체를 리턴해 줘야함.updateConstraints : 제약의 수정 추가siteThatFits : 사이즈를 입력받아 해당 크기에 맞춘 사이즈를 반환하게 된다.layoutSubviews : 각 서브뷰들의 레이아웃을 구성하게 된다. 보통 이시점에서 각 뷰들의 크기를 알수 있게 된다.didAddSubview / willRemoveSubview 루트 뷰 컨트롤러 MyApplicationDelegate *app =..
아이폰 시뮬레이터 로그 터미널로 보기 디바이스 목록 $ instruments -s devices 로그위치~/Library/Logs/CoreSimulator/디바이스/ 로그보기$ tail -f ~/Library/Logs/CoreSimulator/디바이스/system.log | grep 키워드
모달 뷰 투명 배경 모달 뷰 컨트롤러 띄우기 MyModalViewController *vc = [[MyModalViewController alloc] initWithNibName:@"name" budle:nil];vc.modalPresentaitionStyle = UIModalPresentationOverCurrentContext; [self presentViewController:vc animated:YES completion:nil]; 이 스타일들은 보여지는 뷰 컨트롤러에 적용해야 한다.아래 스타일은 인터페이스빌더에서도 적용 가능하다. 그런데 UIModalPresentationOverCurrentContext 는 UIModalPresentationOverFullScreen 과 차이를 모르것다.아무튼 둘다 투명..
ChildViewController Child View Controller컨트롤러 추가 addChildViewController: 를 사용해 컨트롤러 추가한다.addSubView: 로 자식 컨트롤러의 루트뷰를 등록한다.자식뷰의 사이즈(frame) 정보를 지정한다.각종 제약등을 설정한다.자식 컨트롤러의 didMoveToParentViewController: 호출해준다. addChildViewController: 가 호출되면 자식 컨트롤러를 등록하고, 자식컨트롤러의 willMoveToParentViewController: 를 호출해준다. 자식컨트롤러가 부모 컨트롤러에 추가될때 원하는 초기화 코드를 넣으면되고, 추가 완료 후에는 부모 컨트롤러에서 didMoveToParentViewController: 를 호출해 주어야 한다. * 오토레이아웃 환..
오토레이아웃 이것저것 / Constraint / UITextView 코드에서 제약 사항추가view.translatesAutoResizingMaskIntoConstraints = NO NSArray *array = [NSLayoutConstraintconstraintsWithVisualFormat:NSString*options:NSLayoutFormatOptionsmetrics:NSDictionary*views:NSDictionary* 오브젝티브씨의 경우 NSDictionaryFromVariableBindings() 매크로를 사용하면 뷰들의 키와 값을 설정해준다.옵션에 정렬등이 있어 사용시 유용하다. NSLayoutFormatAlignAllCenterX 등~ 비주얼포맷 기본| : 슈퍼뷰[view1]-[view2] : 기본간격 8[view1]-10-[view2] : 간격은 ..
커스텀객체와 인터페이스빌더 인터페이스 빌더에서 코드상의 클래스와 프로퍼티를 동적으로 연동 IBDesignable해당 객체를 인터페이스빌터를 통해 표현하겠다는 지시어 IBInspectable이름그래도 해당 속성(멤버 인스턴스)을 인터페이스뷰를 통해 제어 가능토록 해준다. IBInspectable.h@interface MyView : UIView{IBInspectable UIColor *bgColor;}@end .mIB_DESIGNABLE@interface MyView : UIView // setter, getter 관련 코드-(void)setBgColor:(UIColor *)color {// setter를 재정의 해 변경이 일어나면 처리할 작업을 추가한다// 원래 setter가 할일 -_-;;bgColor = color; // 다른..
스토리보드 / XIB 스토리보드,xib 객체 코드에서 불러오기 xib 기반 프로젝트나 날코딩(?)으로 ui를 구현했는데, 만약 storyboard가 필요할 경우동적으로 스토리보드를 불러올수 있다. 스토리보드를 만들고 뷰컨트롤러 속성에서 id를 지정하고, id를 사용한다고 체크해야 한다. UIStoryboard *sb = [UIStoryboard storyboardWithName:@"스토리보드 이름" bundle:nil];UIViewController *vc = [sb instantiateViewControllerWithIdentifier:@"뷰컨트롤러id"]; xib// NSBundle 사용 현재 권장되지 않음.[[NSBundle mainBundle] loadNibNamed:@"nib이름" owner:self options:..