[Objective-C] 테이블 뷰 관련 메소드와 프로퍼티

Objective-C/UIKit 2012. 2. 25. 21:25
■ UITableView의 메소드와 프로퍼티
 -. style : 스타일 지정
 -. numberOfRowsInSection : 하나의 섹션에 속하는 행의 수
 -. numberOfSetions : 섹션의 수
 -. rowHeight : 행의 높이
 -. separatorStyle : 행 구분선의 스타일
 -. separatorColor : 행 구번선의 색상
 -. editing : 편집모드
 -. setEditing:animated : 편집 모든 전환과 애니메이션으로 가장 많이 사용된다.
    (테이블 뷰를 편집 모드로 전환하면서 동시에 애니메이션 효과도 주는 메소드로, 편집 기능이 필요한 테이블에서는 필수)
 -. reloadData : 테이블 뷰 리로드, 테이블이 표현중인 데이터를 다시 한번 로드 해주는 것
    (테이블 뷰로 표시해야 하는 데이터들이 변경됐을 때 호출하는 메소드다.)
 -. dataSource : 데이터 소스 델리게이트 지정 (데이터 소스 메소드 들을 사용하기 위해 필수적)
 -. delegate : 델리게이트 지정 (델리게이트 메소드 들을 사용하기 위해 필수적)


■ UITableViewCell의 메소드와 프로퍼티
 -. accessoryType : 셀에 표시될 액세서리 타입, accessoryType을 이용해 제공 중인 타입을 정의해 사용
 -. accessoryView : 셀에 표시될 액세서리 뷰, accessoryView를 이용해 새로운 모습을 추가할 수도 있다.
 -. selected : 선택 여부를 결정
 -. selectionStyle : 선택 스타일 여부(선택됐을 때 어떤 스타일로 보여줄 것인지를 결정하는 부분)
  · UITableVIewCellSelectionStyleBlue : 선택 스타일 파란색
  · UITableVIewCellSelectionStyleGray : 선택 스타일 회색
  · UITableVIewCellSelectionStyleNone : 선택 스타일 없음
 ※ accessoryType과 accessoryView는 아이폰에서 테이블 뷰를 접하면 흔히 볼 수 있는 우측의 꺽쇠나 체크 표시를 나타내는것
 ※ selected와 selectionStyle은 테이블 뷰의 행을 선택하는 데 대한 프로퍼티


■ UITableViewDelegate의 메소드와 프로퍼티
 -. tableView:heightForRowAtindexPath : 각 행의 높이 반값으로 정의
 -. tableView:didSelectRowAtIndexPath : 행 선택 시 호출, 행을 터치 했을 때 어떤 동작을 할지 정의해 줄 수 있다.
    (메소드를 이용해 상세 페이지나 더보기 기능을 구현할 수 있기 때문에 사용빈도가 높은 중요한 메소드다.)


■ UITableViewDataSource의 메소드와 프로퍼티
 -. tableView:cellForRowAtIndexPath : 각 행에서 셀을 생성해 반환
    (각 행에 대한 셀을 만들기 위해 호출되는 메소드, 이 메소드는 각 셀에 나타날 데이터나 셀의 모습을 임의로 정할 수 있다.)
 -. numberOfSectionsInTableView : 테이블 뷰 섹션의 수를 결정
    (섹션은 어떤 기준에 의해 각 행을 묶어준다. 가장 흔한 예로 초성 글자를 가진 'ㄱ', 'ㄴ', 'ㄷ', …과 같은 열의 집합이다.)
 -. tableView:numberOfRowsInSection : 각 센션당 행의 수
    (각 섹션당 몇개의 행을 가리킬지 결정하므로 표현해야 할 데이터의 수만큼 반환해 줘야 한다.)
 -. tableView:commitEditingStyle:forRowAtindexPath : 행 추가 / 삭제
 -. tableView:canEditRowAtIndexPath : 행 추가 / 삭제 지가능 여부 반환
 -. tableView:canMoveRowAtIndexPath : 행 이동 가능 여부 반환
 -. tableView:moveRowAtIndexPath:tolndexPath : 행 이동

[Objective-C] UIKeyBoardType 종류

Objective-C/UIKit 2012. 2. 25. 18:00

■ keyboardType

① UIKeyboardTypeDefault, UIKeyboardTypeAlphabet, UIKeyboardTypeASCIICapable

 -. 가장 일반적으로 많이 보이는 키보드 타입으로, 메모를 하거나 장문의 텍스트를 입력 할 때 사용하기 편리하다.

 

② UIKeyboardTypeEmailAddress

-. 메일 주소를 입력할 때 쓰이는 기호들이 전면으로 나와 있는 키보드 타입이다.

 

 

③ UIKeyboardTypeNumbersAndPunctuation

-. 기호가 전면으로 나오는 키보드로 기호를 입력해야 할 상황에는 이 타입으로 키보드를 보여주면 된다.

 

④ UIKeyboardTypeURL

-. 웹 페이지 주소를 입력할 때 사용되는 기호들을 전면에 위치시킨 키보드다.

 

⑤ UIKeyboardTypeNumberPad

-. 숫자를 입력하기 위한 키보드 타입으로, 문자를 입력해야 하는 위치에서는 사용하지 않는것이 좋다.

 

⑥ UIKeyboardTypeNamePhonePad

-. 문자 입력 창에서 대문자를 사용하는 Shift키가 막힌 상태이며, 숫자 키를 누르면 기호 없이 숫자만 입력하는 키보드

    (전화번호부에 연락처를 등록할때 쓰이는 이름과 전화번호를 위한 키보드 타입이라고 보면 된다.)


 

⑦ UIKeyboardTypeDecimalPad

-. 소수점을 입력하기 위한 숫자 패드로 정밀한 숫자 데이터를 입력해야 할 경우 사용하면 좋은 키보드 타입니다.

 

⑧ UIKeyboardTypePhonePad

-. UIKeyboardTypeNumberPad와 같이 숫자를 입력하는 키보드이지만

   전화번호를 입력하는 것에 최적화돼 전화 통화에 사용되는 기호들과 함께 숫자를 배치한다.

 

 

 

 

 

 

 

[Objective-C] SubView 띄우기

Objective-C/UIKit 2012. 2. 7. 16:45

01. 'http://ihayatesw.tistory.com/15' 에서 04번까지의 수행을 행한다.

 

02.  Xcode 상단의 File → New→ File을 선택한다.

 

03. 'UIViewController'를 선택하고 'Next'를 눌러 다음으로 넘어간다.

 

04. 'Class'의 TextBox에 이름을 정해서 입력한다.(여기서는 RootViewController라고 정의하였다.)

 

05. 'Create'를 눌러서 마무리 하면 'RootViewController'가 생성된다.

 

06. 'AppDelegate.h' 파일을 열고 아래와 같이 수정한다.

#import <UIKit/UIKit.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate> {
   
    UIViewController *viewController;
    UIWindow *window;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) UIViewController *viewController;

@end



07. 'AppDelegate.m' 파일을 열고 아래와 같이 수정한다.

#import "AppDelegate.h"
#import "RootViewController.h"

@implementation AppDelegate

@synthesize window = window;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
   
    // window를 직접 작성(인터페이스 빌더를 사용하지 않기 때문에)
    CGRect bounds = [[UIScreen mainScreen] bounds];
    window = [[UIWindow alloc] initWithFrame:bounds];
   
    // 애플리케이션 로딩이 끝난 후 수행되는 부분
    viewController = [[RootViewController alloc] init];
   
    [window addSubview:viewController.view];
    [window makeKeyAndVisible];
   
    return YES;
}

@end


08. 'RootViewController.m' 파일을 열고 아래와 같이 수정한다.

#import "RootViewController.h"

@implementation RootViewController

- (void)viewDidLoad {
   
    [super viewDidLoad];
   
    UILabel *label = [[UILabel alloc] init];
    [label setFrame:CGRectMake(110.0, 100.0, 200.0, 30.0)];
    [label setText:@"Hello Xcode"];
    [self.view addSubview:label];
   
    [self.view setBackgroundColor:[UIColor whiteColor]];
}


@end


09. 이제 'Run'을 눌러 에뮬레이터를 실행하면 'RootViewController'에 작성한 'Hello Xcode'가 화면에 띄어지는 것을 볼 수 있다.



[Objective-C] Interface builder 없이 시작하기

Objective-C/UIKit 2011. 12. 22. 00:54
01. Xcode를 실행하고 'Create a new Xcode project'를 클릭한다.




02. Single View Application을 선택한다.

     Xcode 4.2버전에서 특별한 경우가 없을 경우 'Empty Application'으로 파일을 계속 생성한다.





03. Choose options for your new project:
 ① 'Product Name'을 지정해 준다.
 ② 'Company Identifier'을 지정해준다.(한번 설정해 두면 계속 그 값이 고정되어 사용할 수 있으므로 'test'라고 입력하여 넘어간다.)
 ③ 'Device Family'를 'iPhone', 'iPad', 'Universal' 3가지중 한가지를 선택한다.(여기서는 'iPhone'을 선택하고 넘어간다.)
  'Use Storyboard', 'Use Automatic Reference Counting', 'Include Unit Tests'의 체크를 해제한다.





04. 새로운 Project가 생성된다.


05. '프로젝트 내비게이터'에서 '프로젝트 파일의 'AppDelegate.h' 파일을 수정한다.


 #import <UIKit/UIKit.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate> {

UIWindow *window;
}

@property (strong, nonatomic) UIWindow *window;

@end


06. '프로젝트 내비게이터'에서 프로젝트 파일의 'AppDelegate.m' 파일을 수정한다.


#import "AppDelegate.h"

@implementation AppDelegate

@synthesize window = _window;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
   
    // window를 직접 작성(인터페이스 빌더를 사용하지 않기 때문에)
    CGRect bounds = [[UIScreen mainScreen] bounds];
    window = [[UIWindow alloc] initWithFrame:bounds];
   
    // 어플리케이션 윈도우와 같은 크기의 사각형을 구함
    CGRect rect = [window frame];
    // UILabel 인스턴스를 만들고 초기화 한다.
    UILabel* label = [[UILabel alloc] initWithFrame:rect];
    // UILabel에 표시할 메세지는 물론 [Hello, World!]
    label.text = @"Hello, World!";
    // 만든 UILabel을 window에 추가하자.
    [window addSubview:label];
   
    [window makeKeyAndVisible];
   
    return YES;
}

@end


07. 작업이 끝나고 실행을 하면 'Simulator'가 실행된다.