본문 바로가기

개발/App Developer

UITableViewCell 의 악세사리 종류 셀에 악세사리를 설정하는 부분 cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 액세사리 종류 UITableViewCellAccessoryDetailDisclosureButton 해당 셀에만 해당하는 세부 동작을 실행시킬 때 사용한다. (예: 음성 메시지 재생들) [ > ] UITableViewCellAccessoryDisclosureIndicator 셀을 선택하면 계층 구조에서 다음 단계의 뷰로 전환된다는 표시 [ √ ] UITableViewCellAccessoryCheckmark 항목이 선택되었음을 표시한다. 더보기
컴파일 경고 및 에러 메시지-예문 Property 'indexArray' requires the methd 'setIndexArray:' to be defined - use @synthesize, @dynamic or provide a method implementation --> interface 에서 멤버 객체로 만든 뒤에 @property 지시자를 지정했을 때 implementation 에서 @synthesize 를 해야 한다는 메시지 더보기
UITableViewCellDelegate 프로토콜의 중요 메소드 tableView:didSelectRowAtIndexPath: - 이 메소드는 테이블 뷰에서 특정행이 선택되었을 때 호출된다. 이 메소드는 선택에 대한 동작을 처리하기 위해 구현될 수 있다. 이런 동작에서는 UITableViewCellAccessoryCheckmark 를 이용한 체크 마크 같은 것이 있다. 선택에 대한 구현될 내용이 없다면 구현하지 않아도 된다. tableView:willSelectRowAtIndex:Path:: - 이 메소드는 특정행이 막 선택되려고 할 때 호출된다. 앞의 tableView:didSelectRowAtIndexPath: 메소드 보다 먼저 호출된다. 이 메소드는 사용자가 행을 터치하고 손가락을 들어 올릴 때까지 호출되지 않는다. 하지만 사용자가 손가락을 들어 올리면 바로 호.. 더보기
UITableViewCell 프로퍼티 이외에 이를 지원하는 프로퍼티와 메소드 contentView - 셀 내용이 나오는 뷰를 가리킨다. 읽기 전용 backgroundView - 셀의 배경 뷰를 가리킨다. 애플리케이션이 직접 설정할 수 있다. 배경 뷰는 UITableViewCell 전체 영역의 배경으로 사용된다. selectedBackgroundView - 셀이 선택되었을 때 사용될 배경 뷰를 가리킨다. 이것 역시 애플리케이션이 직접 설정할 수 있다. accessoryType 과 accessoryView - 액세사리 뷰의 타입을 지정한다. accessoryType 은 표준 액세사리 뷰의 종류를 지정하고, accessoryView 는 커스텀 액세사리 뷰를 지정한다. 이 두 개는 서로 배타적이다. 즉 accessoryView 를 지정하면 accessoryType 은 무시된다. sele.. 더보기
모달(Modal) 뷰 뷰에서 응답을 하기 전에는 다른 뷰가 사용자 입력을 받을 수 없게 하는 뷰를 말한다. 뷰 컨트롤러에서는 다른 뷰 컨트롤러를 모달로 화면에 나타낼 수 있다. 이때 화면에 나타나는 모달 뷰는 상태 표시줄을 제외한 모든 영역을 덮는다. 더보기
애플리케이션 델리게이트 이벤트 애플리케이션 델리게이트 이벤트는 main 함수에서 호출되는 UIApplicationMain 이 UIApplication 객체와 애플리케이션 델리게이트 객체를 생성한 다음 UIApplication 객체에 델리게이트 객체를 연결하여 UIApplication 객체는 자신이 참조하는 델리게이트객체에 메시지를 보내는 방식이다. 이들 메시지 중에 최초로 보내지는 메시지는 applicationDidFinishLaunching 이다. 이 메시지는 애플리케이션 초기화 메시지다. 더보기
애플리케이션의 흐름 애플리케이션 흐름은 main.m 에 있는 main 함수에서 시작된다. main 함수는 항상 UIApplicationMain 함수를 호출한다. 그리고 이 함수는 내부적으로 UIApplication 이라는 객체를 생성한다. UIApplication 객체도 내부적으로 info.plist 라는 파일을 찾고, 여기서 메인 nib (.xib) 파일을 찾아 로드한다. 이 파일이 바로 MainWindow.xib 파일이다. nib(.xib) 은 파일에 저장된 클래스 인스턴스 묶음이다. nib 파일을 로드하는 것만으로 인스턴스는 nib 파일에 있는 그대로 메모리에 생성된다. 단순히 인스턴스만 생성하는 것이 아니라 각 인스턴스는 개발자가 nib 파일에 설정한 것을 참고해서 다른 인스턴스를 참조한다. 더보기
뷰 컨트롤러의 재정의 메소드 중요 몇가지 loadView - 컨트롤러가 관리할 새로운 뷰를 생성하고, 배치한다. 필요하다면 여러 뷰를 생성하고, 계층적으로 배치할 수 있다. viewDidLoad - loadView 가 호출되어 뷰 생성이나 로딩이 끝난 다음에 호출된다. shouldAutorotateToInterfaceOrientation - 애플리케이션이 방향 전환을 지원하는지를 YES(1) or NO(0) 로 반환한다. 이것은 애플리케이션이 시작될 때 호출되고, iPhone 이 방향 전환 될 때마다 호출된다. willRotateToInterfaceOrientation - iPhone 으로 방향 전환을 시작할 때 호출된다. 이 메소드에서는 회전된 형태로 뷰를 재배치한다. didRotateFromInterfaceOrientation - iPhon.. 더보기
뷰 이벤트의 터치 이벤트 touchesBegan:withEvent: - 스크린 터치를 시작하면 발생한다. touchesMove:withEvent: - 스크린을 터치한 상태로 이동하는 도중에 계속 발생한다. touchesEnded:withEvent: - 스크린을 터치한 상태에서 터치가 떨어졌을 때 발생한다. touchesCancelled:withEvent: - 스크린을 터치하고 있는 도중에 시스템 이벤트에 의해 터치를 취소해야할 필요가 있을 때 발생한다. 이런 시스템 이벤트로는 터치를 하고 있는 도중에 전화가 걸려온다던지 메모리 부족을 알리는 이벤트가 있다. 더보기
UIEvent 메소드 UIEvent 는 터치가 발생한 뷰나 윈도우 별로 이벤트를 따로 관리한다. 그래서 필요한 뷰나 윈도우 그룹별로 UITouch 인스턴스를 따로 받을 수 있다. allTouches - 모든 UITouch 인스턴스를 NSSet 인스턴스로 반환한다. touchesForView - 특정 뷰에서 발생한 UITouch 인스턴스만 NSSet 인스턴스로 반환한다. touchesForWindow - 특정 윈도우에서 발생한 UITouch 인스턴스만 NSSet 인스턴스로 반환한다. UIEvent 인스턴스를 대상으로 touchesForView: 메소드를 호출하면 특정 뷰에서 발생한 UIEvent 만 받을 수 있다. 여러 뷰가 서로 겹쳐 있는 상태에서 유용하다. 더보기