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