UITableViewCell无法在pre-ios7上正常显示

时间:2014-01-30 16:38:48

标签: ios ios6 uitableview ios7

所以我终于咬紧牙关,跳进了将你的笔尖整合到ios7的约束噩梦。我已经设法得到了约束并且没有想到,但是我在使用自定义图像的tableviewcells时遇到了一些奇怪的显示问题。见这里:

iOS6的: ios 6 table

ios7: ios7 table

这是我的代码声明bg:

    + (UIImage*)yourTurnCell {
      if (sYourTurnCell == nil) {
        UIImage *i = [UIImage imageNamed:@"YourTurnCell.png"];
        sYourTurnCell = i;
      }
      return sYourTurnCell;
    }

在我的细胞结构功能中:

    self.backgroundView = [[UIImageView alloc] initWithImage:
    [GameListCell yourTurnCell]];
    self.selectedBackgroundView = [[UIImageView alloc] 
    initWithImage:[GameListCell yourTurnCell]];

表的宽度决定了行的宽度,这在nib文件中完成。

有人知道我如何解决这个问题吗?一切都是298像素宽,但由于某些未知的原因在ios6上,我得到的细胞比其他所有细胞都小,即使图像本身是298像素。

1 个答案:

答案 0 :(得分:0)

所以我无法解决这个问题,但我确实找到了解决方法。我简单地为3.5和4个视网膜屏幕构建了一个单独的笔尖。还包括一个iPad。通过自己使用笔尖,我可以从头开始正确构建它,而不会出现愚蠢的奇怪故障。

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{

CGSize result = [[UIScreen mainScreen] bounds].size;
if(result.height == 480){
    // Retina 3.5
    self = [super initWithNibName:@"SettingsViewController~iphone" bundle:nibBundleOrNil];
}else if(result.height == 568){
    // Retina 4
    self = [super initWithNibName:@"SettingsViewController~iphone5" bundle:nibBundleOrNil];
}else{
    // iPad
    self = [super initWithNibName:@"SettingsViewController~ipad" bundle:nibBundleOrNil];
}

return self;
}