标签: uigesturerecognizer

带上SubviewToFront问题?

嗨,我有Parentview - >多个子视图.当我在父视图中使用[self bringSubviewToFront:childview]时,它工作正常.但是在将childchildview添加到childview后,当我在parentview中使用[self bringSubviewToFront:grandchildview]时,它不起作用吗?有什么帮助吗?

iphone uiviewcontroller uiview ipad uigesturerecognizer

14
推荐指数
1
解决办法
3万
查看次数

检测长按UINavigationItem的后退按钮

我想通过我的基于UINavigationController的应用程序向我的后退按钮添加功能,其中长按后退按钮将弹出到root.但是,我无法弄清楚手势识别器的附加位置.我是否将UINavigationBar子类化并尝试检测长按是否在左按钮区域?

我之前听说有人添加类似的功能.有人有主意吗?

objective-c uinavigationbar uinavigationcontroller uigesturerecognizer ios

14
推荐指数
2
解决办法
5384
查看次数

如何使用UISwipeGestureRecognizer将"点击"传递到UIView下面的UIButton?

我在(透明)UIView下面有一个UIButton.上面的UIView添加了一个UISwipeGestureRecognizer,这是它唯一的目的 - 检测某些滑动手势.我希望UIView忽略所有其他触摸,并传递给其他视图(例如我下面的UIButton).目前,上面的UIView似乎正在检测水龙头(例如),什么都不做(应该是这样),而不是让UIButton下面有机会响应.

如果可能的话,我宁愿不实现我自己的滑动识别器.任何解决方案/建议?我基本上只是想知道如何告诉UIView只注意某种类型的添加手势识别器,并忽略(因此让后面的视图通过)所有其他触摸.

iphone uibutton uiview uigesturerecognizer ios

14
推荐指数
2
解决办法
7917
查看次数

UIGestureRecognizers与touchesBegan/touchesMoved/touchesEnded(准确性)

我正在使用这两种触摸跟踪方法打印得到的点列表.

手势识别器更易于使用,但如果您使用touchesBegan程序比较得到的点,识别器会避免某些点,特别是在运动开始时.

有谁知道这两个程序之间的准确性是否存在差异?

谢谢!

iphone ipad touchesbegan uigesturerecognizer ios

14
推荐指数
1
解决办法
3602
查看次数

在iOS6中处理手势识别器

显然,当你有一个手势识别器并且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)

uigesturerecognizer ios ios6

14
推荐指数
1
解决办法
6316
查看次数

如何在所有单元格周围的空白区域中接收UICollectionView上的触摸

我有一个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)

不叫.有没有办法实现手势识别器,并从那里确定是否轻敲了一个单元格,如果是这样隐藏该单元格,否则显示所有隐藏的单元格?谢谢.

objective-c uigesturerecognizer ios uicollectionview swift

14
推荐指数
3
解决办法
5002
查看次数

检测UITextView上的点击

我一直在努力用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的链接,但它不起作用.我没有在文档中看到任何暗示它可以完成的内容.

我该怎么办?

uitextview uigesturerecognizer ios swift

14
推荐指数
2
解决办法
1万
查看次数

UIScrollView子视图中的UITapGestureRecognizer

我正在尝试在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)

我环顾了几个小时,尝试了很多东西.也许看别人可以帮助更多.谢谢.

objective-c uiscrollview uiimageview uigesturerecognizer

13
推荐指数
1
解决办法
1万
查看次数

仅针对特定视图禁用手势识别器

在一个viewController我有一个mainView,在该视图上我有另一个视图(这被称为sidePanel视图有帧0,0,86,420.)我添加了tapGesture.现在我想只为sidePanelView以外的mainView启用手势识别.见下图
在此输入图像描述

我想为sidePanelView禁用tapGesture并启用除此之外的区域.怎么做.(有一点我想说sidePanelView以外的区域是sidePanelView的parentView).

iphone view uigesturerecognizer ios

13
推荐指数
5
解决办法
2万
查看次数

ios UICollectionView检测滚动方向

我有一个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

13
推荐指数
3
解决办法
2万
查看次数