Tag Archives: UITableViewStyleGrouped

[iPhone] UITextView에 라운드 테두리 만들기

UITextField에는 RoundedRect라는 둥근 테두리 형태의 스타일을 제공하고 있습니다.

하지만 UITextView에는 아무리 찾아봐도 그런 스타일을 제공하지 않더군요. 하지만 만들어진 앱을 보면 흔하게 볼 수 있습니다.

방법을 찾아보니 저는 단순히 스타일 설정이 있는줄 알았는데 그게 아니라 엄청난 삽질을 통해 완성되는 것이더군요.

[code]- (void)applicationDidFinishLaunching:(UIApplication *)application {
    // UITableView 생성
    CGRect tableViewRect = CGRectMake(10.0f, 30.0f, 300.0f, 170.0f);
    UITableView *tableView = [[UITableView alloc] initWithFrame:tableViewRect style:UITableViewStyleGrouped];
   
    // UITableView 설정
    [tableView setDelegate:self];
    [tableView setDataSource:self];
    [tableView setScrollEnabled:NO];
    [tableView setAutoresizesSubviews:YES];
    [tableView setRowHeight:150.0f];
    [tableView setBackgroundColor:[UIColor whiteColor]];
   
    // 뷰를 붙이기
    [window addSubview:tableView];
    [tableView release];
   
    [window makeKeyAndVisible];
}

#pragma mark – UITableView dataSource Methods
– (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    // 테이블의 원소는 UITextView 한개뿐이므로 1을 반환하면 된다.
    return 1;
}

– (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    // 재활용을 이용한 셀 생성
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@”TABLEVIEW_IDENTIFIER”];
    if (cell == nil)
    {
        cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@”TABLEVIEW_IDENTIFIER”] autorelease];
    }
   
    // UITextView 생성
    CGRect textViewRect = CGRectMake(5.0f, 5.0f, 270.0f, 140.0f);
    UITextView *textView = [[UITextView alloc] initWithFrame:textViewRect];
   
    [textView setFont:[UIFont systemFontOfSize:12.0f]];
    [textView setTextColor:[UIColor blackColor]];
    [textView setBackgroundColor:[UIColor whiteColor]];
    [textView setReturnKeyType:UIReturnKeyDefault];
    [textView setKeyboardType:UIKeyboardTypeDefault];
   
    [cell.contentView addSubview:textView];
    [textView release];
   
    return cell;
}[/code]
1개의 셀을 가진 UITableView를 만든 후에 하나의 셀에 UITextView를 만들어 넣습니다.

이때에 중요한점은 UITableView의 스타일이 UITableViewStyleGrouped인 점입니다. 이것으로 다음과 같은 화면을 볼 수 있습니다.
사용자 삽입 이미지원하시는 모습이 되었나요? 키보드화면이 짤렸지만 정상적으로 여러줄의 글을 작성할 수 있습니다.
1134272022.zip