| Tumblr iOS Application |
텀블러 앱의 로그인 화면과 같은 입력 폼을 만들기 위해 UITableViewCell을 상속받아 간단한 커스텀 테이블 뷰 셀을 만들었다. 커스텀 테이블 뷰 셀을 만들기 위해선 다음 세 가지만 기억해두면 될 듯 하다.
- UITableViewCell 클래스를 상속하여 원하는 뷰를 추가.
- initWithStyle:reuseIdentifier: 메시지에서 추가된 뷰를 초기화.
- layoutSubviews 메시지를 오버라이드하고 bringSubviewToFront: 메시지를 추가한 뷰를 전면으로 표시한다.
FieldTableViewCell.h
#import@interface FieldTableViewCell : UITableViewCell @property (nonatomic, retain) UITextField *textField; @end
FieldTableViewCell.m
#import "FieldTableViewCell.h"
@implementation FieldTableViewCell
@synthesize textField;
- (void)dealloc
{
[self.textField release];
[super dealloc];
}
- (id)initWithStyle:(UITableViewCellStyle)style
reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
self.textField = [[UITextField alloc] initWithFrame:CGRectZero];
[self.contentView addSubview:self.textField];
}
return self;
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
[super setSelected:selected animated:animated];
}
- (void)layoutSubviews
{
[super layoutSubviews];
[self.contentView bringSubviewToFront:self.textField];
CGSize labelSize = [self.textLabel.text sizeWithFont:self.textLabel.font];
CGRect frameForTextField;
frameForTextField.size.width =
self.contentView.frame.size.width - labelSize.width - 30.0f;
frameForTextField.size.height = 31.0f;
frameForTextField.origin.x = labelSize.width + 15.0f;
frameForTextField.origin.y = 11.0f;
self.textField.frame = frameForTextField;
}
@end
댓글 없음:
댓글 쓰기