Implement UITouchDown for UIImageView(为 UIImageView 实现 UITouchDown)
问题描述
我知道如何为 UIImageView 实现 touchesBegan
I know how to implement touchesBegan for UIImageView
是否可以为 UIImageView 实现 UITouchDown ?(我知道我可以使用 touchesBegan 而不是 UITouchDown 但我想实现 UITouchDown)
is it possible to implement UITouchDown for UIImageView ?(i know that i can use touchesBegan instead of UITouchDown but i want to implement UITouchDown)
推荐答案
使用 UIButton.
UIButton *aButton = [UIButton buttonWithType:UIButtonTypeCustom];
[aButton setImage:someUIImage forState:UIControlStateNormal];
[aButton addTarget:self action:@selector(aMethod) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:aButton];
UIButton 的替代品(更长的方法)
UIControl 已经实现了用户交互并支持细粒度的用户交互.您可以结合 UIImageView 和 UIControl 的功能来实现这一点,因为它们都是 UIView 的子类.
A UIControl implements user interactions and support for fine-grained user interactions already. You can combine the functionality of a UIImageView and a UIControl to achieve this since both are subclasses of UIView.
要获得此行为,请将 UIImageView 的对象作为子视图添加到 UIControl 以便完全覆盖图像.然后使用 addTarget:action:forControlEvents:.这是一个例子:
To get this behavior, add an object of UIImageView as a subview to a UIControl such that the image is fully covered. Then add a event handler to this control using addTarget:action:forControlEvents:. Here's an example:
// assuming the image view object exists
UIImageView *anImageView = ..;
// create a mask that the covers the image exactly
UIControl *mask = [[UIControl alloc] initWithFrame:anImageView.frame];
// add the image as a subview of this mask
CGSize imageSize = anImageView.frame.size;
anImageView.frame = CGRectMake(0, 0, imageSize.width, imageSize.height);
[mask addSubview:anImageView];
// add a target-action for the desired control events to this mask
[mask addTarget:self action:@selector(someMethod:) forControlEvents:UIControlEventTouchUpInside];
// add the mask as a subview instead of the image
[self.view addSubview:mask];
这篇关于为 UIImageView 实现 UITouchDown的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:为 UIImageView 实现 UITouchDown
基础教程推荐
- 通过重定向链接在 Google Play 中打开应用 2022-01-01
- Cocos2d iPhone 非矩形精灵触摸检测 2022-01-01
- Android:getLastKnownLocation(LocationManager.NETWORK_PROVIDER 2022-01-01
- libGDX 从精灵或纹理中获取像素颜色 2022-01-01
- navigator.geolocation.getCurrentPosition 在 Android 浏览器上 2022-01-01
- iPhone - 获取给定地点/时区的当前日期和时间并将其与同一地点的另一个日期/时间进行比较的正确方法 2022-01-01
- NSString intValue 不能用于检索电话号码 2022-01-01
- 如何从 logcat 中删除旧数据? 2022-01-01
- AdMob 广告未在模拟器中显示 2022-01-01
- iOS4 创建后台定时器 2022-01-01
