【问题标题】:Fading a UIView on top of a UITableView with Sections在带有部分的 UITableView 上淡化 UIView
【发布时间】:2009-07-21 15:45:39
【问题描述】:

您好!

我添加了一个 UIActivityIndi​​catorView 作为 UITableView 的子视图。目的是在使用新数据刷新基础表后淡出此视图。

问题是表格视图中的sections(如A、B、C等)好像是在Activity Indicator出现后才添加的,暂时部分阻塞了Activity Indicator .

当涉及到带有部分的表视图上的活动指示器时,是否有“更好的方法”(或更合适的方法)来做这种事情?现在我这样做是为了淡出loading 活动指示器视图:

CGContextRef context = UIGraphicsGetCurrentContext();
[UIView beginAnimations:nil context:context];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:1.0];
[loading setAlpha:0.0f];
[UIView commitAnimations];

FWIW,调用 [myTableView bringSubviewToFront:myActivityIndicatorView] 的等价物似乎也无济于事。

除此之外,还有从超级视图中删除loading 的问题。我想我需要使用setAnimationDidStopSelector: 并将加载视图作为上下文传递(也许我真的不需要那个 CGContextRef 行)。

【问题讨论】:

    标签: iphone uitableview core-animation fade


    【解决方案1】:

    将您的表格作为子视图包含在 UIView 中可能会更容易,然后将加载视图作为子视图交换,直到您的数据准备好显示为止。

    【讨论】:

    • 啊,谢谢!所以我会有一个带有两个子视图的父视图 - 表格和加载视图,而不是让加载视图成为表格视图的子视图。
    • 嘘。没运气。我一定做错了什么。我已将表格放在 UIView 中,并通过新的“topView”属性将其绑定到 IBOutlet。 (原因:我注意到 Table View Controllers 只在 IB 中公开“view”,它与 Table View 绑定,但“view”“tableView”最终都设置为同一个表视图,因此是新的 topView 属性。)然后我将加载指示器 UIView 添加为 topView 的子视图,但我从未看到它。我只看到表格视图。我什至将它们发送到 z-order 的前面/后面,但无济于事。 (我也仔细检查过,topView 不为零。)嗯 ...
    • 我通常会创建一个名为“myTable”的 UITableView 类型的 IBOutlet 并将其与 IB 绑定...此外,在放入加载视图之前,我会从超级视图中删除 UITableView,然后将其放入加载完成后返回。
    • 这只是在:我偶然发现了一个最方便的课程:bukovinski.com/2009/04/08/mbprogresshud-for-iphone 我还贡献了一些模组(在帖子的 cmets 中)。
    • 只是为了整理这个线程:从超级视图中删除 UITableView,然后将其添加回来,效果很好。另一种选择是让 HUD 成为 UIWindow 的子视图,但是在您的应用程序中切换视图时需要小心。任何一个都可以!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2012-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多