UITableViewCell 附件视图按钮未在 ipad 纵向模式下显示

Posted

技术标签:

【中文标题】UITableViewCell 附件视图按钮未在 ipad 纵向模式下显示【英文标题】:UITableViewCell's Accessory View Button is not displaying in ipad portrait mode 【发布时间】:2013-10-28 05:54:17 【问题描述】:

我是 ios 新手。如果您发现有问题,请指导我。这是我的场景。 UITableViewCell 显示一个标签和一个按钮。只有在选择单元格时,才会出现按钮。如果标签文本很大,有时它们都会重叠。因此决定将按钮添加为附件视图。将按钮添加到 UITableViewCell 的附件视图正在 iPhone 中工作。按钮仅在 iPad 横向模式下出现。在 iPad 纵向模式下不显示按钮。我错过了什么。有没有人发现类似的东西。

- (void)tableView:(UITableView *)tview didSelectRowAtIndexPath:(NSIndexPath *)indexPath   

UITableViewCell *cell = [tview cellForRowAtIndexPath:indexPath];
cell.accessoryView = joinButton;



- (void)tableView:(UITableView *)tView didDeselectRowAtIndexPath:(NSIndexPath   *)indexPath 
UITableViewCell *cell = [tView cellForRowAtIndexPath:indexPath];
 cell.accessoryView = nil;


- (void)viewDidLoad

NSString *joinLabel = NSLocalizedString(@"Join", @"");
self.joinButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[joinButton setTitle:joinLabel forState:UIControlStateNormal];
/* set join button frame **/

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath 
if (cell.isSelected) 
    cell.accessoryView = joinButton; // No reason to create a new one every time, right?

else 
    cell.accessoryView = nil;



只有当它已经以横向模式显示时,它才以纵向模式显示加入按钮,然后您将旋转从横向更改为纵向。再次单击某个其他单元格不会在该特定选定单元格上显示按钮。理想情况下,每次在两种方向模式下单击单元格时,它都应该显示按钮。

谢谢

【问题讨论】:

【参考方案1】:

您是否正在重新加载旋转时的表格视图?

您已经在 didSelectRowAtIndexPath 中完成了 (cell.accessoryView = joinButton;) 的编码,而不是在 UITableViewDataSource 的 cellForRowAtIndexPath 或 UITableViewDelegate 的 willDisplayCell 中进行编码。

【讨论】:

我也完成了 willDisplayCell 的编码,我已经更新了我的代码

以上是关于UITableViewCell 附件视图按钮未在 ipad 纵向模式下显示的主要内容,如果未能解决你的问题,请参考以下文章

UITableViewCell,两个单元格都获得了附件视图

更改 UITableViewCell 中的删除附件视图

获取 UITableViewCell 详细附件视图的图像

在 UITableViewCell 的突出显示上更改附件视图

稍后删除 UITableViewCell 的附件视图?

附件视图超出 UITableViewCell 的可见范围