UITableView部分标题中的UIActivityIndi​​catorView在方向更改时消失

时间:2010-07-20 08:34:19

标签: iphone uitableview orientation uiactivityindicatorview

我有一个iPhone应用程序,其中包含分组样式的UITableView。 在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两者都不是。

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

2 个答案:

答案 0 :(得分:1)

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

我试图明确设置autoResizingMask,但这并没有改变1消失。

编辑:无法对你的回答发表评论,我没有真正得到帖子/评论而没有在这里注册,对不起: - /

Edit2:

[sectionHeader addSubview:browsingIndicator];

似乎是问题的一部分。如果我直接返回browseIndicator就可以了。

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

答案 1 :(得分:-1)

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