我在tableView单元格中使用UITextView来编辑文本。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITextField *textName = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, 270, 24)];
[cell addSubview:textName];
[textName release];
}
这样可行,但在iPad上运行时则不正确。
我试图确定使用的细胞宽度 cell.contentView.frame.size.width
但iPhone和iPad的返回总是为320.0
同样在iPad上横向模式时,单元格的宽度是否应该更大?
张志贤
答案 0 :(得分:2)
理想情况下,您需要创建自定义UITableViewCell
并在layoutSubviews
中调整控件尺寸/位置。
如果您要在tableView:cellForRowAtIndexPath:
中添加控件,那么您可以从tableView本身获取宽度:
UITextField *textName = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width-50, 24)];
答案 1 :(得分:1)
textName.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight
。[cell.contentView addSubview:textName]
)。除其他外,内容视图会自动缩小以处理编辑模式。如果您只想调整布局,则对UITableViewCell进行子类化有点过分 - 我的印象是自动调整大小比使用layoutSubviews手动调整大小更快。