gpt4 book ai didi

iphone - 触摸事件不起作用?在 UImageview 中?

转载 作者:行者123 更新时间:2023-12-03 21:00:00 26 4
gpt4 key购买 nike

我在 viewcontroller.m 的 viewdidload 中完成了以下操作

    img = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
img.multipleTouchEnabled = YES;
[self.view addSubview:img];
[img release];

但是当我检查断点时,触摸开始,触摸移动,一切都不起作用?相反,当我使用 XIB 文件时,我设置了 multipleTouchEnabled ,但在这两个文件中触摸事件不起作用...有帮助吗?请问?

最佳答案

您应该尝试设置此属性:

img.userInteractionEnabled = YES;

但这还不够,因为方法:

– touchesBegan:withEvent:
– touchesMoved:withEvent:
– touchesEnded:withEvent:

来自 UIResponder 类(UIVIew 的基类),而不是 UIViewController。

因此,如果您希望调用它们,则必须定义 UIView(或您的情况下的 UIImageView)的子类,在其中重写基本方法。

示例:

MyImageView.h:

@interface MyImageView : UIImageView {
}

@end

MyImageView.m:

@implementation MyImageView

- (id)initWithFrame:(CGRect)aRect {
if (self = [super initWithFrame:rect]) {
// We set it here directly for convenience
// As by default for a UIImageView it is set to NO
self.userInteractionEnabled = YES;
}
return self;
}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
// Do what you want here
NSLog(@"touchesBegan!");
}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
// Do what you want here
NSLog(@"touchesEnded!");
}

@end

然后您可以使用 View Controller 在示例中实例化 MyImageView:

img = [[MyImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
[self.view addSubview:img];
[img release];

您应该看到触摸事件(当然也假设 self.view 将 userInteractionEnabled 设置为 YES)。

关于iphone - 触摸事件不起作用?在 UImageview 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1606492/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com