2012-07-13 99 views
0

我的一个xib文件有一个滚动视图和一个图像视图。我在我的图像视图中添加按钮(因为我想在缩放时让它们缩放),但是当我点击它们时没有任何反应。我相当肯定,这是因为图像视图在滚动视图中,所以我不能单击按钮。当我将按钮添加到滚动视图时,我可以点击它们,但是在缩放时它们不会缩放。视图层次

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

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

我不知道:我的观点层次应该是什么,以满足我的需求。

我应该补充说,我在代码中完成了所有这些操作(不在IB中)。


编辑:图像视图是滚动视图

enter image description here

+0

是否在滚动视图中包含图像视图? – Selkie 2012-07-13 20:38:00

+0

对不起。我将编辑该问题到 – BloonsTowerDefence 2012-07-13 20:42:19

+0

我试过了。该按钮应可缩放和点击,如果你把它作为一个子视图到图像视图。你能发布你的代码吗? – Selkie 2012-07-13 20:58:50

回答

0

那么我所做的就是把一个UIView作为UIScrollView的内唯一之内。这就成了它的内容。

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

我的scrollview有一个UIView是内容,因此我分别使用frame.size和frame.origin来获取滚动视图。

我的UIView和UIScrollview的大小相同,并且以高度和宽度灵活地固定在边上。

这是我用过的scrollview的图像。

enter image description here

正如你可以看到,滚动视图只有在其中一个项目。其他一切都在其中。

我在播放器视图滚动内容中也有标签。但那么什么是移动一个计时器显示的点...

编辑

这是我使用的viewForZoomingInScrollView代码:

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

正如你可以看到我的项目有2个滚动视图和2个内容。每个滚动视图一个。

+0

感谢您的回复,我会试试这个! – BloonsTowerDefence 2012-07-13 20:48:35

+0

好吧,我有几个问题: 在' - (UIView的*)viewForZoomingInScrollView:(UIScrollView的*)scrollView'我应该返回滚动视图? 另外我想添加新的UIView的scrollview,但它没有显示在.xib文件中的层次结构,这是否意味着它不工作? viewForZoomingInScrollView中的 – BloonsTowerDefence 2012-07-13 20:53:16

+0

:您将返回ScrollContents。这将是滚动视图内的单个视图。它的所有内容将滚动和适当放大:) – 2012-07-13 20:57:49