Cocoa touch UITableViewCellStyleValue2样式的单元格上detailTextLabel的宽度
我不熟悉堆栈溢出和cocoa touch开发 我正在尝试使用带有多行detailTextLabel的UITableViewCellsTyleValue2构建UITableViewCell 因此,我实现了tableView:heightForRowAtIndexPath:如下所示:Cocoa touch UITableViewCellStyleValue2样式的单元格上detailTextLabel的宽度,cocoa-touch,uitableview,multiline,Cocoa Touch,Uitableview,Multiline,我不熟悉堆栈溢出和cocoa touch开发 我正在尝试使用带有多行detailTextLabel的UITableViewCellsTyleValue2构建UITableViewCell 因此,我实现了tableView:heightForRowAtIndexPath:如下所示: - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ if (indexPa
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
if (indexPath.row != 4) {
return tableView.rowHeight;
}
NSString *text = toDoItem.note;
UIFont *font = [UIFont systemFontOfSize:[UIFont systemFontSize]];
CGSize withinSize = CGSizeMake(167, 1000);
CGSize size = [text sizeWithFont:font constrainedToSize:withinSize lineBreakMode:UILineBreakModeCharacterWrap];
CGFloat height = size.height + 26;
return height;
}
我发现detailTextLabel的宽度大约为167px,但我想知道它的确切位置,不喜欢硬编码(考虑到方向的变化)
我试图访问detailTextLabel的帧或边界,但其宽度返回0.0
谢谢你的帮助 创建自定义单元格您可以在UITableViewCell的自定义实现中定义一组静态变量,该变量在
布局子视图
中设置这些类型的参数。请务必先调用[super layoutSubviews]
通过这种方式,您可以继承设备默认设置,您无需怀疑。好的,单元格宽度是self.contentView.frame.size.width。您可以使用
self.textlab.frame.size.width
和self.detailtextlab.frame.size.width
,以及self.accessoryView.frame.size.width
+填充来计算细节。我并不是百分之百地相信。但是,您可以通过检测标签宽度和contentView帧宽度之间的差异来计算填充
对不起。我忘记了单元格的detailTextLabel
维度总是在变化;而且绝对不可依赖。您可以根据所属UIViewController的宽度以及单元格textLabel
导出标签宽度。由于计算是在控制器级别进行的,因此您将知道是否对tableView进行了分组。如果是这样,您只需将宽度向后缩放0.8倍左右,然后减去textlab
width
同样,对于字体:
self.textlab.font.pointSize
,和self.detailtextlab.font.pointSize
,谢谢你的回答,但实际上我不想:-)。我无法想象不可能计算出标签的宽度,因为它显然有一个固定的宽度。这对我来说很好。