我有一个方法,我有一个(渲染)UITableViewCell *。我想知道整个细胞的宽度/框架。
cell.frame
似乎不起作用 - 它给了我一个随机单元格的框架。我得到的最接近的是cell.contentView.frame
,但它不包括accessoryView
所涵盖的区域(请参阅http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/TableView_iPhone/TableViewCells/TableViewCells.html#//apple_ref/doc/uid/TP40007451-CH7)。 cell.contentView.superview.frame
也不起作用 - 它在某个任意位置给我一个框架,就像cell.frame
一样。
cell.contentView.width
的情况外, cell.accessoryView.width
+ UITableViewCellAccessoryNone
有效
任何想法如何在所有情况下获得UITableViewCell
的整个帧/宽度?
答案 0 :(得分:12)
试试这个,
NSLog(@"Cell Width = %f",cell.frame.size.width);
NSLog(@"Cell Height = %f",cell.frame.size.height);
它将显示当前的单元格宽度和高度。
答案 1 :(得分:4)
此代码为您提供indexPath选择的特定单元格的框架:
// Get the cell rect and adjust it to consider scroll offset
CGRect cellRect = [tableView rectForRowAtIndexPath:indexPath];
cellRect = CGRectMake(cellRect.origin.x - tableView.contentOffset.x, cellRect.origin.y - tableView.contentOffset.y, cellRect.size.width, cellRect.size.height);
答案 2 :(得分:2)
cell.frame
将始终为您提供正在发送消息的单元格框架。
即使它 返回一个随机单元格,你仍然可以使用框架的宽度,因为所有单元格都有相同的宽度。
答案 3 :(得分:0)
我认为默认情况下,单元格将使用UITableView宽度的100%,因此UITableView的宽度相当于单元格的宽度,因为您可能使用以下方法设置表格单元格高度:
[UITableView setRowHeight:tableCellHeight];
其中tableCellHeight是您选择的数字,UITableView是UITableView的名称而不是UITableView类本身。
然后你会同时拥有表格单元格的宽度和高度,还是我误解了你的问题?