objective-c - UIPanRecognizer 不起作用。我的观点从未重绘

标签 objective-c ios xcode

我已经制作了这样的 UIPanRecognizer。

- (void)pan:(UIPanGestureRecognizer *)gesture
{
    if ((gesture.state == UIGestureRecognizerStateChanged) ||
        (gesture.state == UIGestureRecognizerStateEnded)) {
        CGPoint translation = [gesture translationInView:self];
        self.origin = CGPointMake(
        self.origin.x+translation.x,self.origin.y+translation.y);
        [gesture setTranslation:CGPointZero inView:self];
}

}

但是我的 View 永远不会被重绘,这意味着......我的 drawRect 不会再次被调用。有人试过这个吗?

在我的 viewController 我有这个
UIGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self.graphView action:@selector(pan:)];
[self.graphView addGestureRecognizer:pan]; 
[self updateUI];

我的 updateUI 是
- (void)updateUI { [self.graphView setNeedsDisplay]; } 

最佳答案

你调用你的updateUI将手势识别器附加到 View 时的方法。你应该在你的回调方法中做 pan: .

此外,您正在泄漏内存。在分配和添加 UIGestureRecognizer 之后到你应该看到的 release它。

关于objective-c - UIPanRecognizer 不起作用。我的观点从未重绘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7538799/

相关文章:

iphone - Objective-C 中的实例变量是否默认设置为 nil?

ios - 将 Storyboard中的多个 View Controller 连接到 Xcode 6 中的代码

ios - iOS 中的 performSelector 有什么用

ios - iOS:将任何GMT转换为印度时间格式GMT + 5:30

ios - tableView.moveRow 的自定义动画(在 : to:)

xcode - 您可以从命令行而不是在 Xcode 中创建 Mac .app 发行版吗?

ios - 切换到工作区并在 Xcode 中添加 CocoaPods 后提交到 git?

ios - 如何在适用于 ios 的 Google 街景 sdk 中添加 UIImageView

ios - Bootstrap 3.0.3 glyphicons 在 iOS 7 上显示表情符号

iphone - MBProgressHUD 防止锁定 navigationController