UITableViewCell
클래스의 별표 평점보기를 표시하기 위해 DYRateView을 사용하고 있습니다. DYRateView의 인스턴스 (UIView의 하위 클래스)는 내 'layoutSubviews'메소드에서 할당되고 초기화됩니다.사용자 정의 UITableViewCell의 Alloc/init
'layoutSubviews'에서보기를 할당/초기화하는 것은 나쁜 습관입니까? 셀이 재사용되면 모든 셀에서/init을 할당하거나 뷰를 재사용합니까?
.H
@property (retain, nonatomic) IBOutlet DYRateView *rateView;
그러나 당신이 그것을 때마다layoutSubviews
가 호출하고있는, 그리고 더 호출됩니다, layoutSubviews
에를 할당 할 수 괜찮
- (void)layoutSubviews
{
[super layoutSubviews];
rateView = [[DYRateView alloc] initWithFrame:CGRectMake(100, 60, 160, 20) fullStar:[UIImage imageNamed:@"StarFullLarge.png"] emptyStar:[UIImage imageNamed:@"StarEmptyLarge.png"]];
NSLog(@"created");
rateView.padding = 10;
rateView.alignment = RateViewAlignmentCenter;
rateView.editable = YES;
rateView.delegate = self;
rateView.rate = _rating;
[self.contentView addSubview:rateView];
}
이 방법을 말하는가? '- (id) initWithStyle : (UITableViewCellStyle) style reuseIdentifier : (NSString *) reuseIdentifier' – mnort9
어떤 이유로이 메소드를 구현할 때 결코 호출되지 않습니다. 이것이 스토리 보드를 사용하는 b/c 일 수 있습니까? – mnort9
아마도 - (id) init {}이 호출 될까요? cellForRow에서 셀 생성 방법을 확인하기 만하면됩니다. – MrShoot