用手指IOS调整UIImageView的大小
Posted
技术标签:
【中文标题】用手指IOS调整UIImageView的大小【英文标题】:Resize UIImageView with finger IOS 【发布时间】:2014-05-16 15:41:47 【问题描述】:我有一个 UIImageView(和一个 UITextView),我正在使用加号和减号按钮更改它们的高度。但是,我想像在大多数程序中那样做,在我的视图周围出现一个框,用户可以拖动它的一角来调整大小。只需要拖动一个角。相反是固定的。你是怎么做到的?
【问题讨论】:
【参考方案1】:另一种方式 - 是通过 GestureRecognizer。在某些任务中,我像这样调整图像大小:
- (void)resizeImage:(UIPinchGestureRecognizer *)recognizer
if ([recognizer state] == UIGestureRecognizerStateBegan)
previousScale = [recognizer scale];
UIView *viewToResize = recognizer.view;
if ([recognizer state] == UIGestureRecognizerStateChanged)
CGFloat currentScale = [[viewToResize.layer valueForKeyPath:@"transform.scale"] floatValue];
CGFloat newScale = 1 - (previousScale - [recognizer scale]);
newScale = MIN(newScale, MAX_SCALE / currentScale);
newScale = MAX(newScale, MIN_SCALE / currentScale);
CGAffineTransform transform = CGAffineTransformScale([viewToResize transform], newScale, newScale);
viewToResize.transform = transform;
previousScale = [recognizer scale];
iosobjective-c
【讨论】:
我读到这是现在完成任务的更好方法。与使用 touchesBegan 和 touchesEnded 相比,您可以使用更少的代码调整视图大小 是的,这是更简单的方法 :) 如果您对此代码有任何疑问 - 请随时提问。【参考方案2】:我以前从未这样做过,但我认为您必须覆盖视图的 touchesBegan 和 touchesMoved 函数。当您启动 touchesBegan 方法时,请确保您正在触摸正确的视图,(Imageview 或 UItextView)在其声明中设置一个布尔值。 imTouchingOneOrTheOther。因此,当您现在点击 touchesMoved 功能时,您可以相应地调整框架的大小。我会尝试首先使用基于 UIView 块的动画来调整框架,如果看起来不合适,那么我会使用 coreAnimation。让我知道结果如何。
【讨论】:
所以你建议使用touchesBegan、moved等方法? 是的,但不是调整框架,而是使用边界。 Bounds 应该是您应该调整的正确属性。 有人能解释为什么他们给了我反对票吗?如果是,为什么? 在这里,通过谷歌搜索,我发现这篇文章解释得很清楚。 ***.com/questions/8460119/… 所以现在无论谁给我的答案是否定的,我都会感激它加分以上是关于用手指IOS调整UIImageView的大小的主要内容,如果未能解决你的问题,请参考以下文章