祝大家节日快乐!
我有一个带有UITableViewController和多个部分的简单应用程序。第0节使用Basic UITableViewStyle,第1节使用Right Detail UITableViewStyle。仅在iPad上,我面临一个非常奇怪的问题,即第1节中UITableView的线条不会一直延伸到设备的末尾,如下图所示:
顶部是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尝试了很多值)。
答案 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
。
(但是,最好的方法是使用完全自定义的单元格,而不是尝试修改现有的内置单元格样式。)