1

我不知道如何让我的附件视图适合我的单元格。此外,当我添加一个子视图时,它会将其添加到添加的第一个子视图的右侧。我希望从右到左添加子视图。

我有这个作为我的附件视图

UIView *myAccessoryView = [[UIView alloc] initWithFrame:cell.accessoryView.frame];

每当我添加子视图时,我都会写这个

[myAccessoryView addSubview:greenCircle];

一旦它添加了另一个子视图,它就会被放置在前一个子视图的右侧,该子视图离我的单元格更远。如何反转它添加子视图的方式?如何格式化附件视图以保留在单元格上?

4

1 回答 1

1

您正在尝试使用尚不存在的附件视图框架初始化 myAccessoryView。如果您指定 cell.accessoryType 属性,或者如果您自己创建和设置附件视图,它将在创建单元格(并添加到 tableView)之后创建,如下所示:

[cell setAccessoryView:myAccessoryView];

所以如果你这样做:

UIView *myAccessoryView = [[UIView alloc] initWithFrame:cell.accessoryView.frame];
[cell setAccessoryView:myAccessoryView];

您将拥有大小和坐标为零的附件视图。将cell设置为tableView后,accessoryView会在cell右侧获取标准原点。但它的大小仍然为零。并且您添加到附件视图的所有子视图都将设置为该原点。

方法“addSubview”不能更改子视图框架,它只是将一个视图放置到另一个视图。不知道为什么将新的子视图放置在前一个的右侧。要将您的子视图放在正确的位置,您必须手动设置它们的框架。例如:

UIView *greenCircle = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 30, 30)];
[myAccessoryView addSubview:greenCircle];

希望有帮助。

于 2012-09-07T08:06:08.917 回答