0

だから私はIBで作られたUIViewを持っています。そして、そのビューからタッチを取得できるように、クラスをカスタム UIView クラスに設定しました。しかし、何らかの理由で、私の画面の UIView は私のカスタム クラスのものではありません。私はそれをキャストしてみました:

myView = (CustomUIView *)myView;

また、CustomUIView と同じに設定しようとしました。

myView = [[CustomUIView alloc] init];

(これにより、画面にオブジェクトを追加するとエラーが発生します(IBOutletなどを上書きしたためだと思います。

では、このビューからタッチ (タッチの開始、タッチのキャンセルなど) を取得するにはどうすればよいでしょうか?

4

4 に答える 4

0

ビューに UIGestureRecognizers を追加する方法を見てみましょう。

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIGestureRecognizer_Class/Reference/Reference.html

それが最善の策だと思います。

于 2012-06-07T20:33:13.733 に答える
0

あなたはプログラムでそれを行うことができます、

CustomUIView *custom = [[CustomUIView alloc] initWithFrame:self.view.frame];
self.view = custom;
[custom release];

CustomUIView に UIResponder を実装します。

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {

}
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {

}
于 2012-06-07T20:53:38.557 に答える
0

Lol WAY 愚かな、別の UIView をプログラムで customUIView に追加して、customUIView を埋めて、タッチが通過しないようにしました。

于 2012-06-07T21:51:40.823 に答える
0

アウトレットがCustomUIViewヘッダーの新しいクラスにも準拠していることを確認してください。

#import "CustomUIView.h"

.....

IBOutlet CustomUIView *myView;
于 2012-06-07T20:40:32.683 に答える