English 中文(简体)
在iOS上, 是否有办法在 UIIMageView 中添加该方法的附加目标?
原标题:On iOS, is there a way to add the method addTarget to UIImageView?

我刚刚发现一个 UIButton 对象有处理 UI 事件的方法 < code> adtaget ,但一个 UIImageView 对象没有这样的方法,所以我们无法在代码中做到这一点, 也不能为 UIImageView 对象添加界面构建器。 可以使用一个手势识别器, 但是否有简单的方法将 adtaget 添加到 UIImageView , 以便我们的代码不是部分由手势识别器处理, 部分由 addtaget 方法处理?

问题回答

添加一个手势识别器,调用与您按键调用相同的选择器,不会有什么麻烦:

UIButton *button = [[UIButton alloc] init];
[button addTarget:self action:@selector(tapped:) forControlEvents:UIControlEventTouchUpInside];

UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped:)];
[[self view] addGestureRecognizer:tapRecognizer];


- (void)tapped:(id)sender {}

因为UIIMageView 不是一个UICR(UIButton超级级)的子分类, 所以我的解决方案是假冒UICRDRY的行为, 该行为带有自控手势, 并创建附加目标: 使用自定义 UIIMGEView 的动作方法, 这样它就会看起来像其他UICRDRY 级 。

我创造了一个叫做SWIMGEView的亚类UIIMAGEView, 在信头中:

- (void)addTarget:(id)target action:(SEL)action;

主文件 :

- (void)addTarget:(id)target action:(SEL)action
{
    if (tapGestureRecognizer!=nil) {
        [self removeGestureRecognizer:tapGestureRecognizer];
    }
    tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:target action:action];
    [self addGestureRecognizer:tapGestureRecognizer];
}    

不要忘了让用户互动:

self.userInteractionEnabled = YES;




相关问题
List Contents of Directory in a UITableView

I am trying to list the contents of Ringtones directory in a TableView, however, I am only getting the last file in the directory in ALL cells, instead of file per cell. This is my code: - (...

iPhone NSUserDefaults persistance difficulty

In my app i have a bunch of data i store in the NSUserdefaults. This information consists of an NSObject (Object1) with NSStrings and NSNumbers and also 2 instances of yet another object (Object2). ...

Writing a masked image to disk as a PNG file

Basically I m downloading images off of a webserver and then caching them to the disk, but before I do so I want to mask them. I m using the masking code everyone seems to point at which can be found ...

Resize UIImage with aspect ratio?

I m using this code to resize an image on the iPhone: CGRect screenRect = CGRectMake(0, 0, 320.0, 480.0); UIGraphicsBeginImageContext(screenRect.size); [value drawInRect:screenRect blendMode:...

Allowing interaction with a UIView under another UIView

Is there a simple way of allowing interaction with a button in a UIView that lies under another UIView - where there are no actual objects from the top UIView on top of the button? For instance, ...

热门标签