0

我有一个表,我还声明了它的样式作为分组表样式在视图中确实加载了,但我也有一个单击按钮,我想更改同一个表的样式。

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

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

但是在按钮单击事件上,我正在设置 tableview 框架和样式,请参见下面的代码

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

tableObj style=UITableViewStylePlain;

但它给出了一个错误.....分配给只读属性??

4

6 回答 6

1

根据文档,UITableView 的style属性是这样声明的:

@property(nonatomic, readonly) UITableViewStyle style

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

分配给只读属性

简单地说,你不能那样做。

于 2013-04-05T05:30:06.320 回答
0

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

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

UITableView 类参考

于 2013-04-05T05:02:28.253 回答
0
tblView.style;

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

[tblView setStyle:];

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

最好你得到 2 个表视图,或者,用不同的样式重新初始化你现有的表视图。

于 2013-04-05T04:57:08.780 回答
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];
于 2013-04-05T04:57:16.790 回答
0

根据UITableView Class Referencestyle,您不能更改UITableView

创建 UITableView 实例时,必须指定表格样式,并且该样式不能更改。

于 2013-04-05T04:59:51.883 回答
-2

看到这个。

你可以在创建 UITableView 后以编程方式更改它的样式吗?

不,这是不可能的,请参阅苹果文档中写的:-

于 2013-04-05T05:02:33.560 回答