嗨,我有Parentview - >多个子视图.当我在父视图中使用[self bringSubviewToFront:childview]时,它工作正常.但是在将childchildview添加到childview后,当我在parentview中使用[self bringSubviewToFront:grandchildview]时,它不起作用吗?有什么帮助吗?
我想通过我的基于UINavigationController的应用程序向我的后退按钮添加功能,其中长按后退按钮将弹出到root.但是,我无法弄清楚手势识别器的附加位置.我是否将UINavigationBar子类化并尝试检测长按是否在左按钮区域?
我之前听说有人添加类似的功能.有人有主意吗?
objective-c uinavigationbar uinavigationcontroller uigesturerecognizer ios
我在(透明)UIView下面有一个UIButton.上面的UIView添加了一个UISwipeGestureRecognizer,这是它唯一的目的 - 检测某些滑动手势.我希望UIView忽略所有其他触摸,并传递给其他视图(例如我下面的UIButton).目前,上面的UIView似乎正在检测水龙头(例如),什么都不做(应该是这样),而不是让UIButton下面有机会响应.
如果可能的话,我宁愿不实现我自己的滑动识别器.任何解决方案/建议?我基本上只是想知道如何告诉UIView只注意某种类型的添加手势识别器,并忽略(因此让后面的视图通过)所有其他触摸.
我正在使用这两种触摸跟踪方法打印得到的点列表.
手势识别器更易于使用,但如果您使用touchesBegan程序比较得到的点,识别器会避免某些点,特别是在运动开始时.
有谁知道这两个程序之间的准确性是否存在差异?
谢谢!
显然,当你有一个手势识别器并且UIButton在同一个地方时,iOS 6会尝试自动处理这种情况,并为同一个手势激活.
当您想要单击按钮而不是激活手势识别器时,这种新的自动处理解决了这个问题,但是当您希望手势识别器动作时会产生新的问题.
在iOS 5中,您可以实现:
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
Run Code Online (Sandbox Code Playgroud)
将行动转移到UIButton冲突时.
这似乎在iOS 6中不起作用.此外,反转此方法的行为(因为现在UIButton具有优先权而不是手势识别器)将无法工作.
完整方法:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
if ([touch.view isKindOfClass:[UIControl class]]){
return NO;
}
return YES;
}
Run Code Online (Sandbox Code Playgroud) 我有一个UICollectionView有不同的项目.当我点击一个项目时,我使用:
-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
Run Code Online (Sandbox Code Playgroud)
找出被触摸的内容然后基本上将该视图的alpha设置为0以隐藏它.一切正常.现在我想要做的是当你点击UICollectionViewCell所有视图周围的空白区域然后再次出现.我无法找到一种方法,可以让我知道细胞周围的白色空间何时被触摸.有没有一个好方法呢?我已经尝试设置手势识别器,但是当我这样做时,我的方法
-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
Run Code Online (Sandbox Code Playgroud)
不叫.有没有办法实现手势识别器,并从那里确定是否轻敲了一个单元格,如果是这样隐藏该单元格,否则显示所有隐藏的单元格?谢谢.
我一直在努力用Swift检测UITextView上的点击.
我的UITextViews在一个表中,我必须能够检测链接并按下它们,这些链接长度未知.
此外,如果我点击单元格,我没有点击链接,我想在我的导航控制器堆栈上推送一个新的UIViewController.
我试图创建自己的textview来覆盖touchesCancelled,但这并不成功.它检测到在实际设备上不被视为点击的取消.
该模拟器中不会出现该错误,但似乎我无法点击真实设备,只需长按即可.
class LinkTextView: UITextView {
override func touchesCancelled(touches: Set<NSObject>!, withEvent event: UIEvent!) {
self.textViewWasTapped(self)
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试直接添加手势识别器.我也没有任何成功.它根本不会调用手势识别器.
我将UIGestureReconizer委托添加到我的UIViewController和我的那些行中
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var singleTap : UIGestureRecognizer = UIGestureRecognizer(target: self, action: "tapTextView:")
singleTap.delegate = self
cell.mTextOutlet.attributedText = myMutableString
cell.mTextOutlet.addGestureRecognizer(singleTap)
Run Code Online (Sandbox Code Playgroud)
在我的LinkTextView类中:
class LinkTextView: UITextView {
func tapTextView(stapGesture: UIGestureRecognizer){
println("TAPPING1")
}
}
Run Code Online (Sandbox Code Playgroud)
我看了论坛,发现这篇文章:发帖.它建议使用CHHLinkTextView.我尝试使用它,但我想要的是自动检测链接,正常的uitextview实际上是这样.
我尝试使用界面构建器中的checkBox来解析CHHLinkTextView的链接,但它不起作用.我没有在文档中看到任何暗示它可以完成的内容.
我该怎么办?
我正在尝试在imageView中使用单击识别器(也是一个scrollView子项).在Interface Builder中,我只创建并引用了scrollView.滚动工作,但无法识别单击事件(没有记录任何内容).这是代码:
- (void)loadView {
[super loadView];
UIImage *myImage = [UIImage imageNamed:@"img1.jpg"];
imageView = [[UIImageView alloc] initWithImage:myImage];
[myImage release];
// add gesture recognizers to the image view
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
[imageView addGestureRecognizer:singleTap];
[singleTap release];
[imageScrollView setContentSize:CGSizeMake(imageView.frame.size.width, imageView.frame.size.height)];
[imageScrollView addSubview:imageView]; }
- (void)handleSingleTap:(UIGestureRecognizer *)gestureRecognizer {
// single tap handling
NSLog(@"sinlgeTap called"); }
Run Code Online (Sandbox Code Playgroud)
我环顾了几个小时,尝试了很多东西.也许看别人可以帮助更多.谢谢.
在一个viewController我有一个mainView,在该视图上我有另一个视图(这被称为sidePanel视图有帧0,0,86,420.)我添加了tapGesture.现在我想只为sidePanelView以外的mainView启用手势识别.见下图
我想为sidePanelView禁用tapGesture并启用除此之外的区域.怎么做.(有一点我想说sidePanelView以外的区域是sidePanelView的parentView).
我有一个collectionView.我想检测滚动方向.我有两种不同的动画风格,可以向下滚动并向上滚动.所以我必须学习滚动方向.
CGPoint scrollVelocity = [self.collectionView.panGestureRecognizer
velocityInView:self.collectionView.superview];
if (scrollVelocity.y > 0.0f)
NSLog(@"scroll up");
else if(scrollVelocity.y < 0.0f)
NSLog(@"scroll down");
Run Code Online (Sandbox Code Playgroud)
这只是触摸手指的工作.不适合我
objective-c uigesturerecognizer ios uipangesturerecognizer uicollectionview
ios ×8
iphone ×4
objective-c ×4
ipad ×2
swift ×2
uiview ×2
ios6 ×1
touchesbegan ×1
uibutton ×1
uiimageview ×1
uiscrollview ×1
uitextview ×1
view ×1