Tag: uipinchgesturerecognizer

UIPinch手势识别器

Herkese merhaba! UIGestureRecognizer serisinin ikinci ylan OIPinchGestureRecognizer ilekarşınızdayız。 Uygulamadakullanıcınındokunuşlarınıtespit edenyapıyaUIGestureRenignor deniyor。 点击,捏,平移旋转gibi dokunma hareketlerini bunlaraözelUIGestureRecognizer altsınıflarıilegerçekleştirebiliyoruz。 BuyazımızdaPinch konusunu elealcağız。 Vakit kaybetmedenbaşlayalım😉 UIGestureRecognizer Nedir吗? 手势识别器kulanıcınınparmak hareketleri ileetkileşimdeolan biryapıdır。 Farklıparmak hareketlerini特斯皮edip uygulamaiçibazıaksiyonlarıngerçekleşmesinisağlar。 UIGestureRecognizerKullanımAlanlarıNelerdir吗? Bir resminbüyütülmesinde,ekranda tersçevirilmesinde,üzerinetıkladığızamanbaşkabir resminaçılmasındave dahabirçokalandakarşımızaçıkmaktadır。 UIPinchGestureRecognizerKullanımAlanlarıNelerdir吗? Bir resmi veya herhangi bir nesneyibüyütülmesindeveyaküçültülmesindekullanılır。 UIGestureRecognizer AltSınıfları UITapGestureRecognizer: Kullanıcınınekrandayaptığıbasitdokunmalarıalgılar。 您可以在Instagramda bir照片上双击Double hareketi。 UIPinchGestureRecognizer: İkiparmaklayapılan,büyütmeveküçültmegibi hareketlerisağlayanyapıdır。 UIRotationGestureRecognizer: Döndürmehareketlerini […]

UIPinchGestureRecognizer仅用于捏出

我试图创build一个UIPinchGestureRecognizer失败,如果用户捏(移动手指分开)。 我知道有一个非常简单的方法来做到这一点,只是采取行动方法的识别器的规模,如果它大于1,设置一个标志,并忽略所有未来的呼叫。 然而,这不适用于我,我有其他的手势识别器,需要这个捏认识失败,所以我需要它正确地失败时,用户捏在错误的方向。 我试图inheritanceUIPinchGestureRecognizer: @implementation BHDetailPinchGestureRecogniser { CGFloat initialDistance; } #pragma mark – Object Lifecycle Methods – (id)initWithTarget:(id)target action:(SEL)action { self = [super initWithTarget:target action:action]; if (self) { initialDistance = NSNotFound; } return self; } #pragma mark – UIGestureRecogniser Methods – (BOOL)shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)recogniser { if ([recogniser isKindOfClass:[UIPinchGestureRecognizer class]]) { return [self.delegate gestureRecognizerShouldBegin:self]; } else return […]

我可以传递一个捏手势识别器到一个滚动视图让它缩放?

我为我的ScrollView's缩放编写了一个自定义的捏手势识别器,我在我的视图控制器中处理一个方法中的捏手势。 但在某些情况下,我希望ScrollView的行为与通常的行为完全一样(如果使用了ScrollView附带的标准缩放手势识别器)。 有没有办法,在这种情况下,我可以将我的自定义手势识别器传递给ScrollView ,它会使用该识别器像通常那样缩放视图? 我可以将手势识别器传递给由捏合动作触发的select器吗?

UILable numberoflines和字体大小在放大时间自动设置

我的要求如下。 我有一个添加UILable里面UIView width & height is 30 。 我已经将UIPinchGestureRecognizer设置UIPinchGestureRecognizer UIView 。 捏合function与UIView工作正常。 但我希望当我放大UILable字体大小和numberOfLine自动设置在UIView 。 所以最初的UILable在View中不可见。 当我放大那个时候UILable得到的是要显示的text比UILable将可见(例如这次在3行)。 如果我增加缩放级别比文字将显示在一行。 如何归档这个function? 看下面的截图我想要做什么 ********图片1 ***************** ********图片2 ***************** ********图片3 ***************** 提前致谢 ..

捏放大图像移动到iPad的最左上angular在iOS?

我在iOS中有一个图像。 当我捏的图像移到左上angular时,我在图像上添加了捏手势。 我也在图像上添加了平移手势。 当图像放大,然后我滚动图像在每个方向为此目的我已经添加了平移手势的图像。 我的代码是: -(void)viewDidLoad { UIPinchGestureRecognizer *pinch=[[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(handlePinch:)]; [self.zoom_image addGestureRecognizer:pinch]; panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(moveImage:)]; [panGesture setMinimumNumberOfTouches:1]; [panGesture setMaximumNumberOfTouches:1]; [self.zoom_image addGestureRecognizer:panGesture]; img_center_x = self.zoom_image.center.x; img_center_y = self.zoom_image.center.y; } -(void)handlePinch:(UIPinchGestureRecognizer*)sender { NSLog(@"latscale = %f",mLastScale); mCurrentScale += [sender scale] – mLastScale; mLastScale = [sender scale]; NSLog(@"before ceneter x %f",img_center_x); NSLog(@"before ceneter x %f",img_center_y); […]

UIPinchGestureRecognizer分别在水平和垂直方向上缩放

当使用UIPinchGestureRecognizer时,在水平和垂直方向上检测/读取缩放比例的最佳方法是什么? 我看到这个post UIPinchGestureRecognizer在不同的x和y方向上缩放视图 但是我注意到这么一个看似常规的任务有很多来回走动,我不确定这是最好的答案。 如果完全不使用UIPinchGestureRecognizer来达到这个目的,那么检测两个不同方向的缩放比例的最好方法是什么?

使用UIPinchGestureRecognizer以缩放方向缩放视图

我需要一个缩放识别器,可以在x,y或两个方向上缩放,具体取决于捏的方向。 我查看了其他许多问题,他们只有部分答案。 这是我使用自定义UIPinchGestureRecognizer的完整解决scheme。

将缩放缩放添加到UICollectionView

介绍 我将描述我想实现的效果,然后详细说明我目前正在如何实现这一点,以及它现在的行为有什么问题。 我还会提到另外一个我看过的方法,但根本无法工作。 最相关的代码是在问题的底部内联以便快速访问。 您可以下载源代码的压缩文件或将项目作为BitBucket上的Mercurial Repository进行获取。 该项目现在包含下面答案的修复。 如果您想要最初提供的破损版本,则会标记为“初始错误版本” 该项目是一个概念/秒杀的最低限度的certificate,以评估效果是否可行,所以它是相当轻和简单! 期望的效果 该应用程序将显示形成垂直表的大量离散信息行。 该表格将被用户垂直滚动。 这是UITableView标准行为,也可以使用UICollectionView 。 但是,应用程序还必须支持捏缩放。 当你在桌子上缩放变焦时, 所有的线条都应该挤压在一起。 当你拉伸, 所有的线应该分开。 在我的概念certificate中,单个细胞没有resize,只是将它们重新放置在一起或者进一步分开。 这是故意的:我不相信validation这个想法的可行性是至关重要的。 这里的屏幕截图显示了当前App如何缩小和放大: 目前的实施 我正在使用UICollectionView与自定义UICollectionViewLayout子类。 这个布局将UICollectionViewCells定位在屏幕中间的一个很好的正弦波。 每个UICollectionViewCell只是一个容器,用于存放indexPath行的UILabel 。 UICollectionViewLayout子类有一个参数来设置它描述给UICollectionView每个单元格之间的垂直间距,并且调整这个参数允许表格按需要垂直压扁或拉伸。 我的UICollectionViewController子类有一个UIPinchGestureRecognizer 。 当识别器检测到比例变化时, UICollectionView布局中的垂直单元格间距将UICollectionView更改。 没有进一步考虑,缩放将从内容的顶部发生,而不是在触摸手势的中心。 UICollectionView的contentOffset属性在调整期间进行调整以提供此function。 手势识别器还需要适应夹捏时发生的拖动。 这也是通过更改UICollectionView的contentOffset来处理的。 一些额外的代码允许在手指被添加到手势或从手势移除时触摸手势的中心点改变。 请注意,作为UIScrollView子类的UIPanGestureRecognizer具有自己的UIPanGestureRecognizer ,它与我添加的UIPanGestureRecognizer进行交互。 我不确定这是否导致问题。 我添加了代码来禁用UICollectionView的内置滚动在我的捏手势,但这似乎没有太大的区别。 我试图使用gestureRecognizer:shouldRequireFailureOfGestureRecognizer:使我的UIPinchGestureRecognizer失败的内置UIPanGestureRecognizer ,但这似乎停止了我的掐识别器工作。 我不知道这是我是愚蠢的,还是在iOS中的错误。 如前所述,目前的UICollectionViewCell没有resize。 他们只是重新定位。 这是故意的。 我认为这对于validation这个概念并不重要。 什么工作 工作位工作得很好。 您可以上下拖动表格。 在拖动过程中,您可以添加一个手指并开始捏合,然后释放一个手指并继续拖动,然后添加和捏合等。这一切都非常顺利。 在原始的iPhone 5上,它可以顺利地在屏幕上支持> 200视图的捏和平移。 […]

放大一个二维UICollectionView

我创build了一个横向和纵向的UICollectionView 。 它有不同的UICollectionViewCells 。 一切都是正确的。 现在我正在努力使其变得可zoomable 。 UICollectionViewCells也正确resize。 每当UIPinchGesture发生时,我itemSize在UICollectionViewLayout依赖项的scale设置itemSize 。 TestLayout *layout = (TestLayout *) self.collectionViewLayout; CGSize newItemSize = CGSizeMake(_sizeItem.width * gesture.scale, _sizeItem.height * gesture.scale); [layout setItemSize:newItemSize]; 在这里你可以看到我在CustomLayout中调用的setItemSize方法。 – (void)setItemSize:(CGSize)itemSize { if (CGSizeEqualToSize(self.itemSize, itemSize)) return; _itemSize = itemSize; // [self prepareLayout]; [self invalidateLayout]; } 我的问题是知道,所有项目resize到右下angular,我不知道如何专注于我的UIPinchGesture上的元素。 每次gesture发生时,我都试图改变contentOffset : CGPoint posInView = [gesture locationInView:self]; CGPoint pointPinchTouch = […]

UIPinchGestureRecognizer。 放大手指的位置,不仅中心

我可以使用UIPinchGestureRecognizer在UIPinchGestureRecognizer的视图中进行UICollectionViewCell ,但是无论您开始制作UIPinch手势的位置如何,放大总是放在视图的中心。 例如,我想捏在视图的左上angular区域,并在我触摸屏幕的位置创build缩放。 但是,如果我这样做,缩放是在视图的中心创build。 这是我用来进行缩放的代码: if([gesture state] == UIGestureRecognizerStateBegan) { previousScale = 1.0; } if ( [gesture state] == UIGestureRecognizerStateChanged) { CGFloat currentScale = [[[gesture view].layer valueForKeyPath:@"transform.scale"] floatValue]; // Constants to adjust the max/min values of zoom const CGFloat kMaxScale = 4.0; const CGFloat kMinScale = 1.0; CGFloat newScale = 1 – (previousScale – [gesture […]