UIImage视图为按钮



我正在尝试让UIImageView接受操作并在每次单击UIImageVie时触发它们,但是我很难让它工作,请帮助我

但这是我正在做的:

[View setUserInteractionEnabled:YES];
[View addTarget:self action:@selector(myAction:) forControlEvents:UIControlEventTouchUpInside];

- (void) myAction:(id)sender
{
    NSLog(@"It works!");
}

Objective-C

在您的viewDidLoad:方法中,请编写以下内容:

-(void)viewDidLoad {
    UIImageView *imageview = [[UIImageView alloc]initWithFrame:CGRectMake(100.0, 100.0, 100.0, 100.0)];
    [imageview setImage:[UIImage imageNamed:@"image.png"]];
    [imageview setUserInteractionEnabled:YES];
    UITapGestureRecognizer *singleTap =  [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTapping:)];
    [singleTap setNumberOfTapsRequired:1];
    [imageview addGestureRecognizer:singleTap];
    [self.view addSubview:imageview];
}

然后像这样调用你的手势方法:

-(void)singleTapping:(UIGestureRecognizer *)recognizer {
    NSLog(@"image clicked");
}

迅速

override func viewDidLoad() {
    super.viewDidLoad()
    let imageView: UIImageView = UIImageView(frame: CGRect(x: 100.0, y: 100.0, width: 100.0, height: 100.0))
    imageView.image = UIImage(named: "image.png")
    imageView.isUserInteractionEnabled = true
    let singleTap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.singleTapping(recognizer:)))
    singleTap.numberOfTapsRequired = 1
    imageView.addGestureRecognizer(singleTap)
    self.view.addSubview(imageView)
}
@objc func singleTapping(recognizer: UIGestureRecognizer) {
    print("image clicked")
}
UIImageView不是

控件,则无法向其添加控件事件的目标。您有以下几种选择:

UIImageView上放置一个看不见的UIButton,并将您的目标添加到其中。您可以将按钮的样式设置为自定义,将其文本(和图像)设置为无,以使其不可见。

只用一个UIButton。您可以向其添加背景图像。

UITapGestureRecognizer添加到图像视图并实现其触摸处理程序方法。

子类UIImageView并重写触摸处理方法,以执行您需要执行的操作。

您所要做的就是将点击手势识别器拖到图像视图(在情节提要中)上,并在属性检查器上启用用户交互。如果要将图像用作指向另一个视图控制器的链接,只需按住 Control 键并拖动视图控制器底部的"点击手势识别器"图标到目标视图控制器即可。

UIImageView不是

UIControl因此它没有addTarget:action:forControlEvents方法作为其接口的一部分。您可以改用手势识别器。

我不是专业人士,但您可以使用按钮

UIButton *imageButton = [UIButton buttonWithType:UIButtonTypeCustom];
imageButton.frame = CGRectMake(0, 0, 200, 200);
[imageButton setImage:[UIImage imageNamed:@"Your_Image.png"] forState:UIControlStateNormal];
imageButton.adjustsImageWhenHighlighted = NO;
[imageButton addTarget:self action:@selector(myAction) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:imageButton];

最新更新