2012-06-01 55 views
1

我的應用正在閱讀博客文章的JSON提要並顯示它們。我創建了一個名爲PostView的UIView的子類,並將一個筆尖連接到它。顯示工作正常,但是,我不能得到任何觸摸事件的工作。自定義UIView不會收到觸摸事件

在筆尖我有一個UIButton,其功能應該是執行segue(顯示給定的帖子的評論)。我只是想NSLog的東西,但它不工作。我試圖在代碼中的for循環後面放置按鈕,並且這些操作正常工作,所以我的addTarget方法沒有錯誤。

我也嘗試在多個地方設置setUserInteractionEnabled爲YES,也沒有幫助。我真的無法弄清楚這一點。

有什麼建議嗎?

更新:

for (NSDictionary * post in json) { 
    DMBasePostView *nextPost = [DMBasePostView alloc]; 
    nextPost = [newPost init]; 
    [nextPost setFrame:CGRectMake(...)]; 

    // (setting of post-specific stuffs here cut out...) 

    // adding target for UIButton: 
    [nextPost.showCommentsButton addTarget:self action:@selector(testMethod:) forControlEvents:UIControlEventTouchUpInside]; 

    [self.view addSubview:nextPost]; 
} 

這基本上是我怎麼顯示我的ViewController的帖子。 PostView具有必要的awakeFromNib方法,因此它能夠正確顯示筆尖佈局。

+0

你如何將代碼連接到XIB?這是一件有點棘手的事情,我不認爲人們經常這樣做。 – Christian

+0

我已經將一個空的xib文件及其文件所有者添加到了我的PostView類。然後我添加了一個UIView,並在其上添加了控件。我可以在我的viewcontroller中顯示我的這個xib佈局,沒有任何問題。 – stamas

+0

在你的視圖層次結構中,UIButton是什麼視圖的子元素? –

回答

3

問題是我在我的控制器中操作了PostView的高度,但沒有添加UIView子視圖,結果uibutton以某種方式超出了它的超級視圖範圍。我沒有想到它,因爲它仍然顯示正確,但它沒有響應觸摸。我不得不解決superview的高度,它解決了我的問題。