ios6/7 自定义cell及内部子控件的适配

适配ios6和ios7 cell宽度问题:

方法一:

ios6/7  自定义cell及内部子控件的适配
 1 - (void)setFrame:(CGRect)frame
 2 {
 3     if (iOS7){
 4         [super setFrame:frame];
 5         return;
 6     }
 7     
 8     CGRect cellF = frame;
 9     cellF.origin.x -= 10;
10     cellF.size.width = [UIScreen mainScreen].bounds.size.width + 10 * 2;
11     frame = cellF;
12     [super setFrame:frame];
13     
14 }
ios6/7  自定义cell及内部子控件的适配

 

方法二: 

ios6/7  自定义cell及内部子控件的适配
 1 // 需要调节cell内部子控件的frame,在layoutSubviews方法最可靠\最有效
 2 - (void)layoutSubviews
 3 {
 4     [super layoutSubviews];
 5     
 6     // 0.设置分隔线的位置
 7     _divider.frame = CGRectMake(self.textLabel.frame.origin.x, 0, self.contentView.frame.size.width + 100, 1.2);
 8     
 9     if (iOS7) return;
10     
11     // 1.cell的frame
12     CGRect cellF = self.frame;
13     cellF.origin.x = -10;
14     CGFloat deltaW = 10 * 2;
15     cellF.size.width = [UIScreen mainScreen].bounds.size.width + deltaW;
16     self.frame = cellF;
17     
18     // 2.右边子控件的frame
19     CGRect accessF = self.accessoryView.frame;
20     accessF.origin.x = cellF.size.width - accessF.size.width - deltaW;
21     self.accessoryView.frame = accessF;
22 }
ios6/7  自定义cell及内部子控件的适配

 

自定义cell的背景

ios6/7  自定义cell及内部子控件的适配
#pragma mark 设置背景
- (void)setupBg
{
    // 1.默认
    UIView *bg = [[UIView alloc] init];
    bg.backgroundColor = [UIColor whiteColor];
    self.backgroundView = bg;

    // 2.选中
    UIView *selectedBg = [[UIView alloc] init];
    selectedBg.backgroundColor = ILColor(237, 233, 218);
    self.selectedBackgroundView = selectedBg;
}
ios6/7  自定义cell及内部子控件的适配

ios6/7 自定义cell及内部子控件的适配

上一篇:IBM HTTP Server Performance Tuning


下一篇:第七课 数据管理(1-6)