【发布时间】:2013-01-17 20:51:21
【问题描述】:
问题:
我使用了包含两个按钮的自定义 UITalbeViewCell,它们在纵向上可以正常工作。旋转后,它们都停止响应按钮修饰内部功能。有些人在旋转后出现按钮无法正确绘制的问题。我的看起来不错,因为按钮在旋转后显示在正确的位置,但它们不再响应按钮按下。
对于我应用程序中的这个特定视图,我使用 UIPageController 在视图中实现多个页面,对于嵌入在页面滚动控制器中的视图(暂时命名为 EmbeddedView),有一个包含自定义 UITableViewCell 的 UITableView。自定义表格视图单元格只有一个 nib,文件的所有者是 EmbeddedView。
在嵌入式视图中:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
/*===== This is the most memory efficient way of creating table view cells =====*/
static NSString *CellIdentifier = @"CellIdentifier";
CustomTableViewCell *cell = (CustomTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
[[self customTableCellNib] instantiateWithOwner:self options:nil];
cell = [self customTableCell];
[self setCustomTableCell:nil];
}
}
我尝试了什么:
我为自定义表格视图单元格创建了另一个 nib 文件并在 -cellForRowAtIndexPath() 中使用它,我检查了方向并使用不同的 nib 动态创建单元格,没有运气。
我在 -didRotateFromInterfaceOrientation() 中添加了 [tableview reloadData],没有做任何事情。
有人能给我指出正确的方向吗?任何帮助表示赞赏。
这是 IB 中自动调整大小的表格视图:
看起来不错,但按钮不起作用
更新:我尝试在 IB 中为表格视图指定不同的 Autosizing 掩码,结果如下所示:
【问题讨论】:
-
只需在 cellForRowAtIndexPath() 方法的 UIbutton 事件内添加修饰然后检查。
-
@DixitPatel:谢谢伙计,但这并没有改变任何东西。
-
按钮是否被视觉按下?我的意思是当您按下按钮时,您是否看到按钮的“向下”状态发生变化? (默认情况下它应该变暗)。
-
在调整大小时出现意外行为等情况下,我通常会做的是将层次结构中的每个视图更改为不同的、易于识别的颜色。现在,您拥有具有相同背景颜色(或清晰)的视图 A 和视图 B,并且您看不到视图 B 的大小是否调整得很好。祝你好运。
-
@FábioOliveira,嘿伙计,在为不同的视图着色后,我发现原因是页面容器的框架大小没有正确调整大小,即使滚动视图内容大小也是如此。这就是为什么即使我可以滚动并且看起来容器大小是正确的但实际上不是。如果您可以编辑您的答案并将您的提示放在一起以便它可以帮助遇到相同问题的人,我会标记您的答案并给您剩下的 25 个学分。谢谢老兄。
标签: ios ipad uitableview rotation orientation