2012-06-01 38 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的高度,它解决了我的问题。