我有一个UIView,在它里面放了一个UIImageView。我在UIView上添加了UIPinchGestureRecognizer来处理缩放和放大,并使UIView和UIImageView一起增长。
我的UIView有一个边框。我是这样添加的:
self.layer.borderColor = [UIColor blackColor].CGColor;
self.layer.borderWidth = 1.0f;
self.layer.cornerRadius = 8.0f;
我的问题是我找不到一种方法可以使我的UIView更大,同时保持边框的相同宽度。当用手指捏和缩放时,边框变得更厚。
这是我的UIPinchGestureRecognizer处理程序:
- (void)scale:(UIPanGestureRecognizer *)sender{
if([(UIPinchGestureRecognizer*)sender state] == UIGestureRecognizerStateBegan) {
_lastScale = 1.0;
}
CGFloat scale = 1.0 - (_lastScale - [(UIPinchGestureRecognizer*)sender scale]);
CGAffineTransform currentTransform = self.transform;
CGAffineTransform newTransform = CGAffineTransformScale(currentTransform, scale, scale);
_lastScale = [(UIPinchGestureRecognizer*)sender scale];
[self setTransform:newTransform];
}
非常感谢!
我已经搜索了很多,找到了这个:
self.layer.borderWidth = 2.0f / scaleFactor;
很遗憾,对我来说并没有起作用...虽然有道理,但是无法实现。
我也阅读了关于在后面添加另一个视图,并使前视图具有位置偏移量以使后视图显示并看起来像边框的解决方案。但这不是一个选项,因为我需要我的图像透明查看。
我想重新创建Aviary在他们的应用程序中所做的事情。您可以缩放“贴纸”,边框始终保持相同大小。
scale:
方法结束时重新应用borderWidth
了吗? - ChrisH