如何访问嵌套的UIScrollViews中的子视图

时间:2010-12-12 05:33:05

标签: cocoa-touch uiscrollview uiimageview subview

我无法使用多个UIImageView子视图获取UIScrollView以进行正确缩放,因此我尝试使用UIScrollView,其中包含多个UIScrollView子视图以及每个UIScrollView内部的UIImageView。这样一个UIScrollView只能滚动而另一个只能缩放。

我的问题是:如何访问子视图的子视图。我知道通常我可以使用[scrollView viewWithTag:tagInt];访问子视图,但我似乎无法使用[[scrollView viewWithTag:tagInt] viewWithTag:tagInt2];访问子视图的子视图,因为viewWithTag只返回单个UIView而不是所有子视图。

我总是可以为每个子视图提供一个唯一的标记并以这种方式访问​​它们,但这似乎不是最优雅的解决方案。

访问子视图然后进入subView的子视图的最佳方法是什么(即:访问用于缩放的UIScrollView,这是我主视图的子视图,然后访问它的subView UIImageView)?

3 个答案:

答案 0 :(得分:3)

如果您现在不熟悉子类化,则必须为包含图像的UIScrollViews分配标签。然后你必须做更多的工作来做BobC建议的事情。

for (UIView *subview in [myScrollView subviews])
{
   //check if the current subview is one of the UIScrollViews
   if (subview.tag > 100)
        //do something with the UIScrollView
}

答案 1 :(得分:0)

最优雅的方法是将UIScrollView子类化,给它一个UIImageView属性。这样,您可以使用以下内容访问此UIImageView

MyScrollView *myScrollView = (MyScrollView *)[scrollView viewWithTag:tagInt];
UIImageView *imageView = myScrollView.imageView;

希望这有帮助!

答案 2 :(得分:0)

您可以使用子视图属性获取任何UIView的子视图数组。

for(UIView *subview in [myScrollView subviews]) {
     // do anything with your subview here. 
}