Uiview 带标记返回自我的视图

Uiview 带标记返回自我的视图,uiview,uiscrollview,Uiview,Uiscrollview,我对函数viewWithTag有一个奇怪的行为。 我的故事板是这样的: -viewController --UIScrollView1 (should be a UIView but not changing yet) ---Object with tag 1 to 11 ---Some other object with tag 0 --UIScrollView2 (should be a UIView but not changing yet) ---Object with tag 1 to

我对函数viewWithTag有一个奇怪的行为。 我的故事板是这样的: -viewController --UIScrollView1 (should be a UIView but not changing yet) ---Object with tag 1 to 11 ---Some other object with tag 0 --UIScrollView2 (should be a UIView but not changing yet) ---Object with tag 1 to 11 ---Some other object with tag 0 -视图控制器 --UIScrollView1(应为UIView,但尚未更改) ---标记为1到11的对象 ---标记为0的其他对象 --UIScrollView2(应为UIView,但尚未更改) ---标记为1到11的对象 ---标记为0的其他对象 在我的代码中,我使用[UIScrollView1 wiewWithTag:(1到11)](每次都被转换为良好的对象,并且工作良好。 我对UIScrollView2执行相同的操作,但是每次UIScrollView2返回viewWithTag,因此我从不匹配任何标记的对象

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

有人有线索帮我吗

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

提前感谢,

Damien

我假设UIScrollView2的标记为0,因此标记为0的第一个视图就是UIScrollView2本身

您可能应该为UIScrollView2的每个子视图指定不同的标记,并且始终与UIScrollView2的标记不同


例如,您可以保留0作为您的scrollView标记,保留1,2,3…作为其子视图。

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


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

感谢您的回复。我一直在等待答案,在设计更改结束时,不再需要使用它。但有趣的答案是,我会尝试,但您无法使用
[UIScrollView2 wiewWithTag:1]
如果您已经有了一个对象,不管它在UIScrollView1上是什么,标记为1?那么解决方案将在子视图数组中循环,并检查每个标记,直到找到好的标记?我猜viewWithTag应该是这样做的。我的代码更改太多,所以我无法快速尝试,但听起来是一个好的解决方案。在ios8中有相同的行为,我不知道为什么会发生这种情况。我使用相同的方法创建一些视图,第一次运行正常,下一次运行崩溃