2011-07-12 23 views
4

我有一個UIView控制(白色矩形圖像)將UIView的控制iPhone/iPad的

enter image description here

而且我能夠拖動控制...

enter image description here

當我按下按鈕時,我加載了一個子視圖,這是我創建的另一個筆尖,我在其中放置了隨機控件來說明我的觀點...

enter image description here

如果你們有興趣瞭解我是如何放置在筆尖文件在UIView的控制看一看this問題。爲了理解我的問題,我不需要閱讀它。

反正當加載該nib文件的問題是我不能再拖動頂部UIView。正因爲如此,我改變:

enter image description here

爲:

enter image description here

在子視圖的UIView的

。換句話說,我放置在具有白色背景的UIView中的nib文件的UIView。

當我這樣做時,我能夠拖動控件,但子視圖內的控件不再起作用。我也嘗試將touchesMoved方法放在子視圖中,但是當我這樣做時,應用程序表現很奇怪。加上將nib文件放入UIView控件的目的是爲了避免在幾個nib文件上重複相同的拖動funcionality。

我實際上需要創建一個應用程序,像一個Powerpoint演示文稿,我需要在用戶滑動UIView時更改幻燈片,並且如果它的簾線小於x,則例如將下一張幻燈片(nib文件)加載到該uview控制器。也許有一種更簡單的方式來做我所需要的,但如果我把這個拖拽工作,我完成了,因爲我只需要做一次這個功能。

回答

1

如果您希望它對事件做出響應,您應該爲子視圖啓用UserInteractionEnabled標誌。

實現此目的的一種方法是使用UIGestureRecognizer進行拖動。

UIPanGestureRecognizer非常適合這個(UIGestureRecognizer at apple

基本上你的gesturerecognizer附加到要平移然後調整它在它所提供的回調位置的看法。

UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] 
             initWithTarget:self action:@selector(handlePanGesture:)]; 
panGesture.minimumNumberOfTouches = 1; 
[draggableSubview addGestureRecognizer:panGesture]; 
[panGesture release]; 

然後在handlePanGesture方法你找出用戶使用它得到相應的傳遞和轉化子視圖識別器的translationInView方法多遠平移。

+0

非常感謝,這似乎正是我需要的,但我不知道如何使用它。我必須在哪裏放置代表?我是新來的Objective-C ... –