我的应用程序在PDF格式中有一个相当大的帮助部分。对我来说,PDF是如此之大,我可以在仪器中告诉它对处理器造成了太大的压力,所以我要逐步淘汰它。
我想,一个较轻的实现将使用UILongPressGestureRecognizer
,我可以附加到每个UI元素,这些元素将显示指定文本,可能是弹出框或UIMenuController
,表示所选元素的功能。
所以我的问题是这样的:如何在视图中的每个元素上添加类似标签的内容,以便将其传递给单个方法?当我尝试标记时,我发现无法通过方法签名的(id)sender
部分访问它,因此无法区分元素。
答案 0 :(得分:1)
您可以通过 - (IBAction)xxxxxx:(id)发件人访问代码;像这样:
NSInteger tagValue = [sender tag];
但是为什么不能通过Interface Builder将操作连接到元素? 您在此处使用的UI元素是什么?
答案 1 :(得分:1)
您可以从作为发件人传入的对象派生标记。只需检查它的类并适当地投射它。 tag
是UIView
属性,因此我们将从那里开始。
- (void)someMethod:(id)sender
{
if (![sender isKindOfClass:[UIView class]])
return;
UIView *senderView = (UIView *)sender;
NSInteger tag = senderView.tag;
}