如何设置在UITableViewCell中以编程方式放置的子视图的大小?如何设置自定义UIView的大小/位置以将其放置在自定义UITableViewCell中?
我有一个自定义(subclassed)UITableViewCell,其中部分单元包含许多行(动态),这些行被实现为自定义UIView。这个想法是创建自定义视图(这是一行项目),然后当UITableViewCell点击layoutSubviews时,它将(a)设置自己的重新定位和(b)循环并在每行上调用“layoutSubviews”它用于行的自定义UIViews。
问题 - 我不知道如何正确设置自定义UIView行的大小/位置?我如何在自定义UIView layoutSubviews方法中确定它的x,y,宽度和高度,以便我可以定位它?
我是否真的需要手动,在UITableCellView的layoutSubviews方法中,循环遍历所有行并调用它们的自定义方法,以将它们的位置/宽度/高度传递给它们需要的位置?然后,当自定义UIView行的layoutSubview方法被击中时,它会知道查找它的实例变量,它存储这些值以使用它们?
希望这是有道理的。
结构是:
动态自定义UITableCellView(子类)
- 确定rowHeight的动态中heightForRowAtIndexPath 在layoutSubviews它包括通过子视图循环(自定义的的UIView我)
- 并调用layoutSubview
在自定义UIView(它表示一行项目,例如UILabel)
- 在layoutSubview - 问题:如何设置这个子视图的框架的大小?
- 我假设帧的x,y应该是0,0?
- 对于宽度/高度,您如何获得应该设置的超级景区的完整大小?
- 在layoutSubviews之前,superview是否应该将此信息传递给它?
它更多的思考如何保持UIView行的位置更新,注意到UITableView的动态性质。例如,当用户单击UITableView的工具栏中的增加/减小字体isze时,则需要确保(a)行高相应地改变,(b)子类UITableViewCell中的标题标签改变,以及(c)所有定制对UITableViewCell子视图的UIView行也根据大小/位置进行更新。 – Greg 2011-03-24 02:33:20