我无法弄清楚如何让我的配件视图适合我的细胞。此外,当我添加子视图时,它会将其添加到添加的第一个子视图的右侧。我希望从右到左添加子视图。
我有这个用于我的配件视图
UIView *myAccessoryView = [[UIView alloc] initWithFrame:cell.accessoryView.frame];
任何时候我添加一个子视图我都会写这个
[myAccessoryView addSubview:greenCircle];
一旦它添加了另一个子视图,它就会被放置在前一个子视图的右侧,该视图甚至更远离我的单元格。如何改变添加子视图的方式?如何格式化附件视图以保留在单元格上?
答案 0 :(得分:1)
您正尝试使用尚不存在的accessoryView框架初始化myAccessoryView。如果指定了cell.accessoryType属性,或者如果你自己创建和设置accessoryView,它将在创建单元格(并添加到tableView)后创建:
[cell setAccessoryView:myAccessoryView];
所以如果你这样做:
UIView *myAccessoryView = [[UIView alloc] initWithFrame:cell.accessoryView.frame];
[cell setAccessoryView:myAccessoryView];
您将拥有零尺寸和坐标的accessoryView。将单元格设置为tableView后,accessoryView将在单元格的右侧获得标准原点。但它仍然没有大小。您添加到accessoryView的所有子视图都将设置为该原点。
方法“addSubview”无法更改子视图框架,它只是将一个视图放到另一个视图中。 不知道为什么新的子视图被置于前一个方面。 要将子视图放在正确的位置,您必须手动设置它们的帧。例如:
UIView *greenCircle = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 30, 30)];
[myAccessoryView addSubview:greenCircle];
希望有所帮助。