我一直在搜索这几个小时,但我失败了.我可能甚至不知道我应该寻找什么.
许多应用程序都有文本,在本文中是圆角矩形的Web超链接.当我点击它们UIWebView打开.让我感到困惑的是,他们经常有自定义链接,例如,如果单词以#开头,它也是可点击的,应用程序通过打开另一个视图来响应.我怎样才能做到这一点?是否有可能UILabel或我需要UITextView或其他什么?
hyperlink nsattributedstring uilabel ios uitapgesturerecognizer
我已经编写了自己的函数来在键盘出现时向上滚动文本字段.为了通过点击文本字段来关闭键盘,我创建了一个UITapGestureRecognizer在点击时关注文本字段上的第一响应者.
现在,我还为UITableView文本字段创建了一个自动完成功能,在文本字段正下方创建一个自动填充,并在用户输入文本时用项目填充它.
但是,当选择自动完成表中的一个条目时,didSelectRowAtIndexPath不会被调用.相反,似乎轻敲手势识别器正在被调用并且刚刚辞职第一响应者.
我猜是有一些方法可以告诉轻敲手势识别器继续将点击消息传递到下方UITableView,但我无法弄清楚它是什么.任何帮助将非常感激.
我有一个观点UITapGestureRecognizer.因此,当我点击视图时,此视图上方会出现另一个视图.这个新视图有三个按钮.当我现在按下其中一个按钮时,我没有按下按钮动作,我只得到轻击手势动作.所以我不能再使用这些按钮了.我该怎么做才能将事件传递给这些按钮?奇怪的是按钮仍然突出显示.
我收到它后,我不能删除UITapGestureRecognizer.因为有了它,也可以删除新视图.意味着我想要像全屏视频控件一样的行为.
我正在尝试将2添加UITapGestureRecognizers到视图中,一个用于单击,一个用于双击事件.单击识别器按预期工作(单独).但我似乎无法让双击识别器工作.
试过具有类似性质的实验:cancelsTouchesInView,delaysTouchesBegan和delaysTouchesEnded,但仍然无法正常工作.
当我双击时,单击识别器将始终被激活,双击事件也将被发送到超级视图.但似乎根本没有通知自定义双击识别器.
文件似乎表明上述3个属性可用于此目的.但我只是不确定应该设置什么值以及哪个识别器(单个,双个或两个).希望熟悉这一点的人可以提供帮助.
以下是最新更新的代码块.
// ****** gesture recognizers ******
- (void)addSingleAndDoubleTapGestureRecognizersToView:(UIView *)view
{
// single tap
UITapGestureRecognizer *singleTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget: tableViewController action: @selector(handleSingleTapOnView:)];
[singleTapRecognizer setNumberOfTouchesRequired:1];
[view addGestureRecognizer: singleTapRecognizer];
// double tap
UITapGestureRecognizer *doubleTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget: tableViewController action: @selector (handleDoubleTapOnView:)];
[doubleTapRecognizer setNumberOfTouchesRequired:2];
[singleTapRecognizer requireGestureRecognizerToFail: doubleTapRecognizer];
[view addGestureRecognizer: doubleTapRecognizer];
}
- (void)handleSingleTapOnView:(id)sender
{
}
- (void)handleDoubleTapOnView:(id)sender
{
}
Run Code Online (Sandbox Code Playgroud) 我想让UILabel可点击.
我试过这个,但它不起作用:
class DetailViewController: UIViewController {
@IBOutlet weak var tripDetails: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
...
let tap = UITapGestureRecognizer(target: self, action: Selector("tapFunction:"))
tripDetails.addGestureRecognizer(tap)
}
func tapFunction(sender:UITapGestureRecognizer) {
print("tap working")
}
}
Run Code Online (Sandbox Code Playgroud) 我在这里显示代码的图像是代码
UIImageView *preArrowImage =[[UIImageView alloc]init ];
preArrowImage.image =[UIImage imageNamed:@"arrowprev.png"];
preArrowImage.frame = CGRectMake(20, 60, 10, 30);
[self.view addSubview:preArrowImage];
Run Code Online (Sandbox Code Playgroud)
我想以编程方式处理preArrowImage上的触摸事件.
我需要实现一个功能,当我双击self.view(视图UIViewCotroller)时会调用一些代码.但是我在这个视图上有其他UI对象的问题,我不想将任何识别器对象附加到所有这些对象上.我在下面找到了这个方法如何在我的视图上做手势,我知道它是如何工作的.现在我在障碍面前选择哪种方式来创建忽略子视图的识别器.有任何想法吗?谢谢.
UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleTap:)];
[doubleTap setNumberOfTapsRequired:2];
[self.view addGestureRecognizer:doubleTap];
Run Code Online (Sandbox Code Playgroud) 我正在使用tap事件是非常时间敏感的,所以我很好奇是否有可能在用户简单触摸时激活UITapGestureRecognizer,而不是要求它们也能触摸起来?
我有一个UIView4个按钮,另一个UIView在按钮视图的顶部.最顶层的视图包含UIImageView一个UITapGestureRecognizeron.
我试图创建的行为是,当用户点击UIImageView它时,它在屏幕右下角的小视图和动画变大之间切换.当它很大时,我想要禁用底部视图上的按钮,当它很小时,在右下角我希望触摸传递到按钮并让它们正常工作.我几乎在那里,但除非我禁用UserInteractions顶视图,否则无法通过按钮进行操作.
我initWithFrame:在顶视图中有这个:
// Add a gesture recognizer to the image view
UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageTapped:)];
tapGestureRecognizer.cancelsTouchesInView = NO;
[imageView addGestureRecognizer:tapGestureRecognizer];
[tapGestureRecognizer release];
Run Code Online (Sandbox Code Playgroud)
我这是我的imageTapped:方法:
- (void) imageTapped:(UITapGestureRecognizer *) gestureRecognizer {
// Toggle between expanding and contracting the image
if (expanded) {
[self contractAnimated:YES];
expanded = NO;
gestureRecognizer.cancelsTouchesInView = NO;
self.userInteractionEnabled = NO;
self.exclusiveTouch = NO;
}
else {
[self expandAnimated:YES];
expanded …Run Code Online (Sandbox Code Playgroud) 我是手势识别器的新手所以也许这个问题听起来很愚蠢:我正在为一堆UIViews分配轻拍手势识别器.在该方法中,有可能找出以某种方式点击它们中的哪一个,或者我是否需要使用点击屏幕上的点找到它?
for (NSUInteger i=0; i<42; i++) {
float xMultiplier=(i)%6;
float yMultiplier= (i)/6;
float xPos=xMultiplier*imageWidth;
float yPos=1+UA_TOP_WHITE+UA_TOP_BAR_HEIGHT+yMultiplier*imageHeight;
UIView *greyRect=[[UIView alloc]initWithFrame:CGRectMake(xPos, yPos, imageWidth, imageHeight)];
[greyRect setBackgroundColor:UA_NAV_CTRL_COLOR];
greyRect.layer.borderColor=[UA_NAV_BAR_COLOR CGColor];
greyRect.layer.borderWidth=1.0f;
greyRect.userInteractionEnabled=YES;
[greyGridArray addObject:greyRect];
[self.view addSubview:greyRect];
NSLog(@"greyGrid: %i: %@", i, greyRect);
//make them touchable
UITapGestureRecognizer *letterTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(highlightLetter)];
letterTapRecognizer.numberOfTapsRequired = 1;
[greyRect addGestureRecognizer:letterTapRecognizer];
}
Run Code Online (Sandbox Code Playgroud) ios ×10
iphone ×4
objective-c ×3
swift ×2
uiimageview ×2
uilabel ×2
cocoa-touch ×1
hyperlink ×1
uitableview ×1
uitouch ×1
uiview ×1