【问题标题】:UIActivityIndicatorView in UITableView section header disappears on orientation changeUITableView 部分标题中的 UIActivityIndi​​catorView 在方向更改时消失
【发布时间】:2010-07-20 08:34:19
【问题描述】:

我有一个包含分组样式的 UITableView 的 iPhone 应用程序。 在 ViewController 中,我将 UIActivityIndi​​catorView 定义为属性:

self.browsingIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
browsingIndicator.hidesWhenStopped = YES;

我想将此微调器放在表格部分标题之一中:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
    UIView *sectionHeader = [[[UIView alloc] init] autorelease];
    [sectionHeader addSubview:browsingIndicator];
    browsingIndicator.center = CGPointMake(20, 30);

    return sectionHeader;
}

这是有效的。现在的问题:一旦我更改设备方向,活动指示器就会消失,只有当我将其拖出可见屏幕并重新进入时才会重新出现。将设备转回原始方向无济于事,将“hidesWhenStopped”更改为 NO也没有。

有人能指出我正确的方向吗?谢谢!

【问题讨论】:

    标签: iphone uitableview orientation uiactivityindicatorview


    【解决方案1】:

    感谢您的回答,迈克,但我认为不是这样。 UIActivityIndi​​catorView 已正确定位和调整大小,但未绘制。当我强制 sectionHeader 重绘(通过将其滚动到视野之外)时,它会在正确的位置旋转,即使在横向时也是如此。

    我尝试显式设置 autoResizingMask,但这并没有改变 1 的消失。

    编辑:无法评论您的答案,如果没有在这里注册,我并没有真正得到帖子/评论,对不起:-/

    编辑2:

    [sectionHeader addSubview:browsingIndicator];
    

    似乎是问题的一部分。如果我直接返回浏览指示器,它就可以工作了。

    现在有点解决了: 如果我在 viewForHeaderInSection 方法之外为节标题定义 UIView 然后只返回它,它就可以工作。

    【讨论】:

    • 这是因为您正在自动释放标题,这意味着它可能会在将来的某个时间释放。当您说“在...之外定义 uiview”时,它之所以有效,是因为您将它保留在某个地方,因此它不会被释放。
    • 哇...你和 OP 拥有相同的 Identicon O.o
    【解决方案2】:

    您想适当地设置微调器的autoResizingMask 属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-23
      相关资源
      最近更新 更多