Получить ширину / кадр всего UITableViewCell - PullRequest
4 голосов
/ 26 июля 2011

У меня есть метод, в котором у меня есть (отображается) 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 во всех случаях?

Ответы [ 4 ]

12 голосов
/ 26 июля 2011

Попробуйте это,

NSLog(@"Cell Width = %f",cell.frame.size.width);
NSLog(@"Cell Height = %f",cell.frame.size.height);

Показывает текущую ширину и высоту ячейки.

4 голосов
/ 07 ноября 2012

Этот код дает вам кадр конкретной ячейки, выбранной 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 голосов
/ 26 июля 2011

cell.frame всегда даст вам кадр ячейки, которую вы отправляете.

И даже если действительно вернул случайную ячейку, вы все равно сможете использоватьширина рамки, потому что все ячейки имеют одинаковую ширину.

0 голосов
/ 26 июля 2011

Я думаю, что по умолчанию ячейка будет использовать 100% ширины UITableView, поэтому ширина UITableView эквивалентна ширине ячейки, и потому что вы, вероятно, установили бы высоту ячейки таблицы, используя:

[UITableView setRowHeight:tableCellHeight];

Где tableCellHeight - это число по вашему выбору, а UITableView - это имя вашего UITableView, а не сам класс UITableView.

Тогда у вас будет ширина и высота ячейки таблицы, или я неверно истолковал ваш вопрос?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...