* 인터페이스 빌더 중 Library 항목에 Image View
- Drawing 체크박스
Opaque (불투명 항목) : 아이폰 OS에게 이 뷰 밑에 있는 것은 그릴 필요가 없고 컨트롤을 그릴 때 몇 가지 방법으로
최적화를 해서 속도를 높일 수 있게 한다.
Hidden (숨김) : 사용자는 그 컨트롤을 볼 수 없다.
Clear COntext before Drawing : 실제 컨트롤을 그리기 전에 컨트롤러의 전체 영역을 모두 지운 뒤에 그리게 된다.
Clip Subviews (하위뷰 자르기) : 부모 영역 안의 하위 뷰만 그린다. 체크하지 않는 것이 기본 값.
Autoresize Subviews : 뷰의 크기가 변경되면 하위뷰의 크기도 변경되도록 설정하는 기능.
- Interaction 상호작용
User Interaction Enabled : 사용자가 이 객체와 무엇인가를 할 수 있는 지 설정한다.
체크하지 않으면 그 컨트롤은 어떤 액션 메서드도 유발할 수 없게 된다.
Multiple Touch : 컨트롤이 멀티터치 이벤트를 받을 수 있을지를 결정한다.
* 인터페이스 빌더 중 Library 항목에서 TextField
- TextField
Placeholder : 텍스트 필드 안에서 회색으로 표시할 텍스트를 설정
Clear When Editing Begins : 텍스트를 입력하려고 테스트 필드를 선택했을 때 기존에 있던 값을 지우고 새롭게입력을 시작
Text Input Traits
Capitalize : 입력되는 순서에 따른 대문자 표시여부
Auto-enable Return Key : 텍스트 필드에 한 글자 이상을 입력할 때까지 리턴 키는 비활성화 상태를 유지
Secure : 텍스트 필드의 글자를 보여줄 것인지를 결정하는 옵션
* Done 을 누르면 키보드 사라지게 만들기
- 아이폰의 키보드는 물리적인 키보드가 아닌 소프트웨어 기반의 키보드이다.
사용자가 Done 버튼을 누르면 "Did end on Exit" 이벤트가 생성된다. 그때 텍스트 필드가 제어를 포기하면 키보드가 사라진다.
- first responder 의 개념은 "사용자가 현재 상호작용 중인 컨트롤" 이 메서드에서 어떤 컨트롤이든 이 액션을 유발하면
퍼스트 리스폰더 상태를 포기하게 만든다.
텍스트 필드가 퍼스트 리스폰더임을 포기하면 키보드는 사라진다.
예제)
.h 파일에 추가
-(IBAction)textFieldDoneEditing:(id)sender
.m 파일에 추가
-(IBAction)textFieldDoneEditing:(id)sender
{
[seder resignFisrtResponder];
}
* 액션 메서드를 호출할 수 있는 모든 컨트롤들은 UIControl 의 하위 클래스이다.
* UISegmentedControl 의 selectedSegmentIndex 속성은 현재 선택된 세그먼트의 인덱스를 정수로 알려준다.
분할 컨트롤의 첫번째 세그먼트인 Switches 의 인덱스 값은 0 이다.
* 액션 시트는 사용자에게 2개 이상의 항목에 대해 강제적인 선택을 받고자 할 때 사용된다.
- 액션 시트는 화면의 아래 쪽에서 나타나며 사용자의 선택을 받기 위한 여러 버튼들로 구성되낟.
사용자는 버튼 중 하나를 선택하기 전까지는 더 이상 진행할 수 없다.
사용자의 확인을 받는 용도로 사용된다.
- 액션 시트를 사용하기 위해서는 컨트롤러 클래스가 델리게이트를 사용하면서
클래스가 UIActionSheetDelegate 프로토콜을 따르게 해야 한다.
예제)
UIActionSheet *actionSeet = [[UIActionSheet alloc]
initWithTitle:@"Are you sure ?"
delegate:self
cancelButtonTitle:@"No Way!"
destructiveButtonTitle:@"Yes, I'm Sure!"
otherButtonTitles:nil];
[actionSheet showInView:self.view];
[actionSheet release];
- initWithTitle : 액션시트의 제목
- delegate : 액션시트의 델리게이트는 시트에 있는 버튼을 눌려졌을 때 알려주는 역할을 한다.
좀 더 구체적으로 actionSheet:didDismissWithButtonIndex: 메소드가 호출.
- cancelButtonTitle : 사용자가 더 이상 진행을 원치 않을 때 사용될 버튼의 제목을 설정.
- destructiveButtonTitle : 종료버튼에 사용될 제목
- [actionSheet showInView:self.view]; : 액션 시트 생성 후에 화면 상에 액션 시트를 출력하는 코드
결과화면)
* 경고창은 화면의 중앙에 나타나며 파란 색의 둥그스름한 사각형 모양을 하고 있다.
- 경고창도 액션 시트처럼 애플리케이션을 계속해서 진행하기 전에 사용자의 응답을 받는 용도로 사용된다.
- 액션시트와 다른 점은 경고창의 경우 중요한 무언가나 예외상황이 발생하였다는 것을 알리기 위해 사용되며
보통 1개의 버튼으로 구성된다. 물론 여러 개의 버튼이 사용될 수도 있다.
- 경고창은 사용자의 선택을 받기 위한 것이 아니라 단순히 무언가를 알려주기 위한 것이므로,
창이 닫힐 때 이벤트를 받아 무언가를 처리할 필요는 없다.
예졔)
-(void)actionSheet:(UIActionSheet*)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex
{
if(buttonIndex != [actionSHeet cancelButtonIndex])
{
NSString *msg = nil;
if(nameField.text.length > 0)
msg = [[NSString alloc] initWithFormat:@"You can breathe easy, %@, everything went OK.", nameField.text];
else
msg = @"You can breathe easy, everything went OK.";
UIAertView *alert = [[UIAlertView alloc]
initWithTitle:@"Something was done"
message:msg
delegate:self
cancelButtonTitle:@"Phew!"
otherButtonTitles:nill];
[alert show];
[alert release];
[msg release];
}
}
결과화면)
'개발 > App Developer' 카테고리의 다른 글
2010.08.11 - coredata 이해 (0) | 2010.08.30 |
---|---|
기본적인 상호작용 (0) | 2010.08.30 |
자동회전과 자동크기 조절 (0) | 2010.08.30 |
멀티뷰 애플리케이션 (0) | 2010.08.30 |
탭바와 피커 (0) | 2010.08.30 |