[英]Using QuartzCore to draw a border around UIView results in border being 1 px smaller than the view;
[英]How to keep a consistent 2px border around a UIView when scaling it?
我有一个自定义UIView,可以根据UISlider的值进行缩放和旋转。 缩放效果很好,它很简单:
self.myView.transform = CGAffineTransformScale(CGAffineTransformIdentity, sx, sy);
我的UIView有一个2px的边框:
self.layer.borderColor = [UIColor whiteColor].CGColor;
self.layer.borderWidth = 2.0f;
但是,当我缩放视图时,边框的大小也会增大。 如何保持一致的边框忽略视图的比例?
当您更改视图缩放...时:
self.layer.borderWidth = 2.0f / scaleFactor;
缩放的目的和因此预期的行为是,2px帧可以与剩余视图一起放大或缩小。
您可以使用一个具有框架颜色的视图,并在顶部设置一个4px / 4px较小且位于2/2的视图,该视图仅显示没有框架的剩余视图。
然后相应地更改底层(框架)视图的框架。 然后相应地缩放子视图。 确保它保持居中或仍然从(2/2)开始。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.