1

私のアプリは、ブログ投稿の JSON フィードを読み取って表示しています。PostView という UIView のサブクラスを作成し、ペン先をフックしました。表示は正常に機能していますが、タッチ イベントが機能しません。

nib には UIButton があり、その機能はセグエを実行することになっています (特定の投稿のコメントを表示するため)。何かを 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 メソッドがあるため、ペン先のレイアウトが正しく表示されます。

4

1 に答える 1

4

問題は、コントローラーでPostViewの高さを操作したが、追加されたUIViewサブビューの高さは操作しなかったため、uibuttonがスーパービューの範囲を超えてしまったことです。正しく表示されていたので思いもよらなかったのですが、タッチに反応しませんでした。スーパービューの高さを修正する必要があり、問題は解決しました。

于 2012-06-04T13:10:02.020 に答える