3

我对函数 viewWithTag 有一个奇怪的行为。我的故事板看起来像这样:

-viewController
--UIScrollView1(应该是一个 UIView 但还没有改变)
---标签为1到11的对象
---带有标签0的其他对象
--UIScrollView2(应该是 UIView 但还没有改变)
---标签为1到11的对象
---带有标签0的其他对象
我的代码,我做 [UIScrollView1 wiewWithTag:(1 to 11)] (每次都转换为好的对象,它工作得很好。我对 UIScrollView2 做同样的事情,但每次 UIScrollView2 都返回 viewWithTag,所以我从不匹配任何标记的对象。

仅出于调试目的,我不进行 UIScrollView2 更新并尝试使用其他值 UIScrollView1 进行更新,并且它仅为一个对象返回 UIScrollView1,即 UIImageView(唯一的一个)。但是所有的 UILabel 又可以正常工作了。

有人有一些线索可以帮助我吗?

PS:标签对象被检查了 10 次,我使用如下函数:-(void) updateWithScroll:(UIScrollView*)myScroll 所以它与 1 或 2 相同 :(

在此先感谢,
达米安

4

2 回答 2

1

尝试自己浏览子视图,快速枚举subviews或使用另一个循环。

我遇到了同样的问题,但我没想到会出现这种行为,但我可以选择不保留根视图标记并将其设置为 -1,这是一个从未使用过的值。

于 2014-04-07T16:08:46.583 回答
0

我假设 UIScrollView2 的标签是 0,所以标签 0 的第一个视图就是你的 UIScrollView2 本身。

您可能应该为 UIScrollView2 的每个子视图提供不同的标签,并且始终与 UIScrollView2 的标签不同。

例如,您可以为滚动视图的标签保留 0,为它的子视图保留 1,2,3...。

于 2013-12-20T09:53:28.777 回答