我有一个 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 在他们的应用程序中所做的事情。您可以放大和缩小“贴纸”,并且边框始终保持相同大小。