所以我有两个问题需要解决:
我正在考虑两者,因为我有来自客户端的x / y坐标,我将以编程方式实例化UIButton(自定义/透明)并将其放置在UIImageView&的所需区域上。 UIScrollViews。
当用户选择按钮时,我也会触发一个事件。我正在考虑提供标签并使用像
这样的签名- (IBAction) btnPress:(id)sender
所以我可以查询发件人
[sender tag]
然后根据标签做出决定。每个按钮都有一个唯一的ID。 我的问题是:
TIA。
答案 0 :(得分:4)
如果您想使用UIButton来处理触摸,您确实可以创建一个自定义按钮放置在框架上。如果采用此路线,要将方法应用于按钮,则必须执行以下操作:
UIButton *myButton = [UIButton buttonWithType:....];
myButton.tag = // your tag;
[myButton addTarget:self action:@selector(btnPress:) forControlEvents:UIControlEventTouchUpInside];
然后,当您想要调用该方法时,它将是您所期望的IBAction方法。
- (IBAction)btnPress:(id)sender {
其中[sender tag]
确实会让您指定的按钮按照您的意愿继续进行。
话虽这么说,我可能更倾向于在视图上设置UIGestureRecognizer。基本上,你会标记你的UIImageView和/或UIScrollView,然后创建一个手势识别器:
UITapGestureRecognizer *myGesture = [[UITapGestureRecognizer alloc] init];
[myGesture addTarget:self action@selector(frameTouched:)];
// for the case of the imageView;
[myImageView addGestureRecognizer:myGesture];
[myGesture release];
然后处理手势,
- (void)frameTouched:(UIGestureRecognizer *)gesture {
int myLogicTag = [[gesture view] tag]; // this finds the tag of the view it embodies, in this case your imageView
// continue with your code;
}
当然,如果你有自定义scrollView或imageView类,你可以简单地覆盖touchesBegan
方法并从那里做你想做的事。我认为这应该很好地涵盖你的选择,所以我希望这有帮助