【问题标题】:iPhone - initWithFrame not working for UIActivityIndicatorView?iPhone - initWithFrame 不适用于 UIActivityIndi​​catorView?
【发布时间】:2010-10-14 17:30:09
【问题描述】:

我正在使用带有自定义单元格的表格视图,并希望在单击按钮时更改表格视图的内容。我在单元格加载数据时使用活动指示器。

这就是我创建指标视图的方式

indicator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(141.0, 190.0, 37.0, 37.0)];
indicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhite;
indicator.hidesWhenStopped = YES;
[[self tableView] addSubview:indicator];

但看起来框架对指示器没有影响。指示器不是显示在表格的中心,而是显示在视图左上角的导航栏中。

我不知道这有什么问题以及为什么会这样。有人可以帮我吗。 alt text http://www.freeimagehosting.net/uploads/95cbe49850.png

【问题讨论】:

    标签: iphone


    【解决方案1】:

    initWithFrame: 不是创建UIActivityInidcator 的建议方法。查看 API,您可以看到要创建 UIActivityIndicator,您应该使用

    [[UIActivityIndicator alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
    

    然后将其添加到您的视图中,并按照 Pablo 的建议使用 setCenter: 设置其位置。

    此外,如果用户向上或向下滚动,将其添加到表格视图中的某个位置会使其随表格一起滚动。如果你把它放在表的超级视图中,它会保持在原地。

    【讨论】:

    • initWithFrame 可用于初始化任何控件。
    • 是的,这就是它存在的原因。但这不是某些控件的建议方法,其中提供了另一个 initWith...:
    【解决方案2】:

    试试这个:

        activityIndicator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 32.0f, 32.0f)];
        [activityIndicator setCenter:CGPointMake(160.0f, 208.0f)];
        [activityIndicator setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleGray];
        [activityIndicator startAnimating];
    

    调用 setCenter 应该会得到您所期望的行为。

    祝你好运!

    【讨论】:

    • 试过这个。仍然在导航栏中得到它。添加图片以供参考
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多