5

私はこれに少しこだわっています、私はUIButton内部を持っていますUIViewController、しかし何らかの理由でUIButtonは応答していません。

_downloadButton = [[DownloadButtonViewController alloc] init];
_downloadButton.issue = _issue;
_downloadButton.view.frame = CGRectMake(self.descriptionLabel.frame.origin.x, self.descriptionLabel.frame.origin.y + self.descriptionLabel.frame.size.height + 20, 200, 27);
[self.view addSubview:_downloadButton.view];

UIButton *tmpButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
tmpButton.titleLabel.text = @"test";
tmpButton.frame = CGRectMake(_downloadButton.view.frame.origin.x, _downloadButton.view.frame.origin.y - 30, _downloadButton.view.frame.size.width, _downloadButton.view.frame.size.height);
[self.view addSubview:tmpButton];

何も重なっていないかどうかを確認UIButtonするために、同じ位置に追加しても機能するので、もう少し下に追加しました。

私のアプリケーションの構造はこのようなものです

- UIViewController
    - UIScrollView
        - ThumbCover
            - UIImageView
            - DownloadButton --> NOT WORKING
            - UIButton --> WORKING
            - UILabel
        - ThumbCover
            - UIImageView
            - DownloadButton --> NOT WORKING
            - UIButton --> WORKING
            - UILabel
        - ThumbCover
            - UIImageView
            - DownloadButton --> NOT WORKING
            - UIButton --> WORKING
            - UILabel
        - ThumbCover
            - UIImageView
            - DownloadButton --> NOT WORKING
            - UIButton --> WORKING
            - UILabel

これDownloadButtonは単純なUIButtonもので、特別なことは何もありません。

4

6 に答える 6

15

ビューコントローラのビューの高さを27として指定しました

_downloadButton.view.frame = CGRectMake(self.descriptionLabel.frame.origin.x, self.descriptionLabel.frame.origin.y + self.descriptionLabel.frame.size.height + 20, 200, 27);

ボタンのフレームがその親ビュー(ビューコントローラのビュー)のフレーム(上記のフレーム)の外側にある場合、ボタンはタッチに応答しません。

于 2012-09-18T04:09:22.160 に答える
0

実際にボタンのターゲットを設定しましたか?(提供されたコードではそれがわかりません!)そうでなければ、もちろんまったく応答しません。

于 2012-09-18T04:36:27.607 に答える
0

私はあなたのコードを入れましたが、上書きする2行を変更したので、このコードを試してみてください...

_downloadButton = [[DownloadButtonViewController alloc] init];
_downloadButton.issue = _issue;
_downloadButton.view.frame = CGRectMake(self.descriptionLabel.frame.origin.x, self.descriptionLabel.frame.origin.y + self.descriptionLabel.frame.size.height + 20, 200, 27);

UIButton *tmpButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
tmpButton.titleLabel.text = @"test";
tmpButton.frame = CGRectMake(_downloadButton.view.frame.origin.x, _downloadButton.view.frame.origin.y - 30, _downloadButton.view.frame.size.width, _downloadButton.view.frame.size.height);
[self.view addSubview:tmpButton];
[self.view addSubview:_downloadButton.view];

これがお役に立てば幸いです...

:)

于 2012-09-18T05:32:44.290 に答える
0

私の場合、アニメーション化されたトランジションはまだ完了していないようです。completeTransition:Boolメソッドの最後に animateTransition:context、ViewController内のすべてのボタンを無効にするのを忘れてしまいましたuserinteractionEnabled

于 2015-08-03T06:56:27.913 に答える
-2

あなたを見てこのコード

_downloadButton = [[DownloadButtonViewController alloc] init];

名前の付け方が間違っているという意味ではありませんが、DownloadButtonViewControllerがUIButtonであるかどうかは疑問です。DownloadButtonViewController.hを開いて、これを持っているかどうかを確認してください

@interface DownloadButtonViewController : UIButton
于 2012-09-18T04:10:43.940 に答える
-3
replace this line.. 

tmpButton.titleLabel.text = @"test";

なので

[tmpButton setTitle: @"test" forState:UIControlStateNormal];
于 2012-09-18T05:40:18.903 に答える