0

我必须为 tableview 设计ios7/6-ios6我需要实现一个 tableview 分组样式,ios7我需要一个简单的样式。因此,在故事板中,我将样式更改为普通样式,并且在子类的 viewDidLoad 中,UITableViewController我有以下内容:

if (!IS_OS_7_OR_LATER) {
    self = [[UITableViewController alloc] initWithStyle:UITableViewStyleGrouped];
}

但它不起作用。我尝试使用initWithCoder方法但无法获得好的结果。有什么帮助吗?

4

3 回答 3

1
- (id)initWithFrame:(CGRect)frame style:(UITableViewStyle)
{
    bool isLowerOrEqualToSix = (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1);

    if (isLowerOrEqualToSix) { // iOS 6 or lower
        [super initWithFrame:frame style:UITableViewStyleGrouped];
    } else { // iOS 7 or higher
        [super initWithFrame:frame style:UITableViewStylePlain];
    }
}

这就是你需要的。

于 2013-11-12T13:03:54.503 回答
0

尝试继承 UITableView,并重写此方法:

-(id)initWithFrame:(CGRect)frame style:(UITableViewStyle)
{
    if (!IS_OS_7_OR_LATER) {
          [super initWithFrame:frame style:UITableViewStyleGrouped];
     } else
          [super initWithFrame:frame style:UITableViewStylePlain];
}

然后,在 Interface Builder 上,将 tableView 的类设置为刚刚创建的派生类。

于 2013-11-12T07:49:13.390 回答
0

如表视图类参考中所述,样式属性必须在初始化时设置。在此之后无法更改。在代码中,您可以使用 if 语句检查 ios 版本并使用适当的样式进行初始化。使用情节提要按照此链接如何切换到 iPhone 5 的不同情节提要?

于 2013-11-12T12:31:01.830 回答