【发布时间】:2011-06-29 12:52:59
【问题描述】:
我创建了一个UIViewController,其中包含一个UIView 对象。
我希望 UIView 对象响应 1 根手指的单击以及 2 根手指的捏合。
我点击了 xib 中的“启用用户交互”和“多点触控”选项。
我在UIView 函数initWithFrame: 中同时创建UITapGestureRecognizer 和UIPinchGestureRecognizer,因为它是UIView 对象的唯一入口点。但该对象不响应 UIGestureRecognizer 对象。为什么?或者,放置UIGestureRecognizer 对象的最佳位置在哪里?
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
// single tap
UITapGestureRecognizer* singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
singleTap.numberOfTapsRequired = 1;
singleTap.numberOfTouchesRequired = 1;
[self addGestureRecognizer: singleTap];
// 2 fingers pinch
UIPinchGestureRecognizer* doubleMove = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleMove:)];
[self addGestureRecognizer: doubleMove];
}
return self;
}
【问题讨论】:
-
单独的问题,但您需要在
addGestureRecognizer:调用之后release手势识别器。 -
谢谢。我正在使用 XCode 4.2,它使用 ARC,当我尝试释放/自动释放任何对象时,编译器会给我错误。我对以前使用最新编译器所做的事情感到非常困惑。
-
好吧,没关系。还不习惯“丢失”版本。
标签: ios uiview uigesturerecognizer