iphone - 以编程方式添加手势识别器

标签 iphone objective-c ios xcode

我知道如何通过 IB 添加手势识别器,但我试图在不使用 IB 的情况下解决这个问题。

所以现在基本上是

blue1.userInteractionEnabled = YES;
UIPanGestureRecognizer *pgr = [[UIPanGestureRecognizer alloc] 
                               initWithTarget:self action:@selector(handlePan:)];

[blue1 addGestureRecognizer:pgr];
[pgr release];

我的 handlePan 是

-(IBAction)handlePan:(UIPanGestureRecognizer *)recognizer {

    CGPoint translation = [recognizer translationInView:self.view];

    recognizer.view.center = CGPointMake(recognizer.view.center.x + translation.x, recognizer.view.center.y + translation.y);

    [recognizer setTranslation:CGPointMake(0, 0) inView:self.view];

}

如果我在 IB 上做这件事,效果很好,我可以拍摄这件作品。

我不明白是什么导致它不像现在编码的那样移动。

感谢任何帮助。

我还在我的 handlePan 中尝试了 -(void) 而不是 -(IBAction),但这也没有用。

最佳答案

这在 IB 中有效,但在代码中无效,这表明错误出在第一段代码中。我怀疑 blue1nil。确保在 viewDidLoad 之前不要尝试修改 View 。它们在 initWithFrame:awakeFromNib 中都将是 nil

关于iphone - 以编程方式添加手势识别器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9352224/

相关文章:

ios - 创建一个 View ,如 iOS 的图片所示

ios - 离开 uiviewcontroller 时 Dropbox 上传停止

iphone - UINavigation 栏重新加载/刷新按钮代码

objective-c - 如何在 Objective C 中浏览文件夹?

ios - 检查客户端浏览器是否使用 rails 响应 URL

iphone - iOS 与 Facebook 集成 - 在新闻源中发布

ios - 我的程序不断崩溃,我不明白为什么

ios - 如何在 ios 中以编程方式添加水平间距和垂直间距?

ios - 无法找到或创建描述 IBScaleFactorDeviceTypeDescription : scaleFactor=2x 的执行上下文

ios - 如何在点击图像时弹出 UITextField 以输入数据?