【问题标题】:Hierarchy of views视图层次结构
【发布时间】:2012-07-14 04:59:27
【问题描述】:

我的一个 xib 文件有一个滚动视图和一个图像视图。我正在向我的图像视图添加按钮(因为我希望它们在缩放时缩放),但是当我单击它们时没有任何反应。我相当确定这是因为图像视图位于滚动视图中,所以我无法单击按钮。当我将按钮添加到滚动视图时,我可以单击它们,但是当我缩放时它们不会缩放。

我需要什么:我可以点击的按钮也会在我放大和缩小时缩放。

我认为我需要做的:添加另一个视图来放置按钮。

我不知道的:我的视图的层次结构应该是什么,以满足我的需求。

我应该补充一点,我在代码中完成了所有这些(而不是在 IB 中)。


编辑:图像视图在滚动视图中

【问题讨论】:

  • 图片视图是否包含在滚动视图中?
  • 是的,很抱歉。我会将其编辑到问题中
  • 我试过了。如果您将按钮设置为图像视图的子视图,则该按钮应该是可缩放和可点击的。你能发布你的代码吗?

标签: objective-c uiview uiscrollview uiimageview


【解决方案1】:

好吧,我所做的只是将 UIView 作为 UIScrollView 中的唯一内容。然后这成为了它的内容。

这些内容是可缩放的。该 uiview 中的任何内容也会缩放。这应该包括任何按钮、任何图像视图或任何其他控件。然后在滚动视图上设置 contentSize 和 contentOffset 来设置它应该滚动的“内容”的大小。

我的滚动视图有一个 UIView 作为内容,因此我分别使用 frame.size 和 frame.origin 来启动滚动视图。

我的 UIView 与 UIScrollview 大小相同,并以灵活的高度和宽度锚定到边缘。

这是我使用的滚动视图的图像。

如您所见,滚动视图中只有一项。其他一切都在其中。

我在 Player View Scroll Contents 中也有这个标签。但是那移动的计时器显示有什么意义......

编辑

这是我用于 viewForZoomingInScrollView 的代码:

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
    if (scrollView == self.playerScrollView){
        return self.playerViewScrollContents;
    }
    else if (scrollView == self.playerScrollView2){
        return self.playerView2ScrollContents;
    }
    return nil;
}

如您所见,我的项目有 2 个滚动视图和 2 个内容。每个滚动视图一个。

【讨论】:

  • 好的,我有几个问题:在-(UIView *) viewForZoomingInScrollView:(UIScrollView *)scrollView 中,我应该返回滚动视图吗?我也在尝试将新的 UIView 添加到滚动视图中,但它没有显示在 .xib 文件的层次结构中,这是否意味着它不起作用?
  • 在 vi​​ewForZoomingInScrollView 中:您返回 ScrollContents。这将是 Scrollview 中的单个视图。它的所有内容都会适当地滚动和缩放:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-11
  • 1970-01-01
  • 2014-01-24
  • 1970-01-01
  • 2017-06-07
  • 2018-09-14
  • 2012-03-11
相关资源
最近更新 更多