右侧细节UITableViewCell未在iPad上显示完整的行

时间:2015-12-26 17:24:53

标签: ios objective-c uitableview ipad

祝大家节日快乐!

我有一个带有UITableViewController和多个部分的简单应用程序。第0节使用Basic UITableViewStyle,第1节使用Right Detail UITableViewStyle。仅在iPad上,我面临一个非常奇怪的问题,即第1节中UITableView的线条不会一直延伸到设备的末尾,如下图所示:

enter image description here

顶部是Section 0,Basic UITableViewStyle,底部是Right Detail UITableViewStyle。

这是预期的行为,一个错误(最新的Xcode和iOS 9.2),还是有一个简单的解决方法?

请注意,这是iPad唯一的问题,因为它在iPhone上看起来很好,包括6 Plus,它在模拟器和iPad Air 2设备上的行为相同。

对此的任何想法将不胜感激。

更新

我在这堂课中的代码:

- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    // Custom label for the section header titles
    UILabel *label=[[UILabel alloc]initWithFrame:CGRectMake(15, 0, self.moreTabTableView.frame.size.width, 10)];
    label.textAlignment = NSTextAlignmentCenter;
    label.textColor = [UIColor whiteColor];
    [label setFont:[UIFont systemFontOfSize:15.0]];

    if (section == 0)
    {
        label.text = @"Show Your Support";
    }
    else if (section == 1)
    {
        label.text = @"Connect with the BOS Team";
    }
    return label;
}

这一切都是在Storyboard中创建的,所以这是这个类的唯一代码。

更新

我已经多看了一下我的代码,看看这是怎么回事。我正在使用UITableViewCell的自定义类(称为CustomMoreTableViewCell),我只在该自定义子类中使用此代码:

- (void)layoutSubviews
{
    self.imageView.frame = CGRectMake(8, 8, 30, 30);
    self.textLabel.frame = CGRectMake(47, 11, 300, 21);
}

我确保图像的大小适合每个细胞。我刚刚将Donate单元格作为自定义的UITableViewCell子类,它在缩短行数方面做了同样的事情。

我能够通过使用自定义UITableViewView子类来重现这一点,但我不确定使线条一直运行所需的是什么(我已经为imageView和textLabel尝试了很多值)。

1 个答案:

答案 0 :(得分:1)

将您的layoutSubviews实施更改为如下所示:

- (void)layoutSubviews
{
    [super layoutSubviews];
    self.imageView.frame = CGRectMake(8, 8, 30, 30);
    self.textLabel.frame = CGRectMake(47, 11, 300, 21);
    self.separatorInset = UIEdgeInsetsZero;
}

如果结果不是您想要的,请相应地调整separatorInset

(但是,最好的方法是使用完全自定义的单元格,而不是尝试修改现有的内置单元格样式。)