是否有可能在两个不同的视图中更改uitableview的样式?

时间:2013-04-05 04:50:43

标签: iphone ios ios4 iphone-sdk-3.0

我有一张桌子,我也宣称它的样式为分组表样式在视图中加载但我也有一个按钮点击其中我想要更改同一个表的样式。

最初我在视图中设置了这个加载方法:

tableObj= [[UITableView alloc]initWithFrame:CGRectMake(5,50,310,300)style:UITableViewStyleGrouped];

但是按钮点击事件我正在设置tableview fram和样式,见下面的代码

tableObj.frame=CGRectMake(5,50,310,300);

tableObj style=UITableViewStylePlain;

但它给出了一个错误.....赋予readonly属性??

6 个答案:

答案 0 :(得分:1)

根据文档,UITableView的style属性被声明为:

@property(nonatomic, readonly) UITableViewStyle style

readonly关键字意味着您可以获取属性的值,但无法设置它。您只能在使用-initWithFrame:style:创建表格时设置样式。这与您收到的错误消息一致:

  

分配给readonly属性

简单地说,你做不到。

答案 1 :(得分:0)

tblView.style;

这是一个只读属性,你不能设置任何值,而你只能读取它的设置..你可以检查属性是否可更改,或者不是通过编写如下代码

[tblView setStyle:];

但是你会发现你不能这样做,所以你不能设置。

最好获得2个tableviews,或者以不同的样式重新初始化现有的tableview。

答案 2 :(得分:0)

您无法像这样更改表格视图样式。我的建议使用两个表或做这样的事情。

最初是这样的:

tableObj= [[UITableView alloc]initWithFrame:CGRectMake(5,50,310,300)style:UITableViewStyleGrouped];

然后当你想要改变时:

[tableObj removeFromSuperView];
tableObj=nil;]
//if not using ARC
[tableObj release];
tableObj= [[UITableView alloc]initWithFrame:CGRectMake(5,50,310,300)style:UITableViewStylePlain];
[self.view addSubview:tableObj];

答案 3 :(得分:0)

根据UITableView Class Reference,您无法更改style的{​​{1}}

  

创建UITableView实例时,必须指定表格样式,   而且这种风格无法改变。

答案 4 :(得分:0)

可以动态更改表格视图的框架,但不能更改其样式

  

初始化表视图时设置表格样式(请参阅   initWithFrame:方法的风格:)。此后您无法修改该样式。

UITableView Class Reference

答案 5 :(得分:-2)

看到这一点。

Can you programmatically change the style of a UITableView after it's been created?

不,这是不可能的在苹果文档中看到这是可能的: -