在缩放时如何在UIView周围保持一致的2px边框?

时间:2014-04-17 20:09:39

标签: ios objective-c quartz-core cgaffinetransformscale

我有一个自定义UIView,可以根据UISlider的值进行缩放和旋转。缩放效果很好,很简单:

self.myView.transform = CGAffineTransformScale(CGAffineTransformIdentity, sx, sy);

我的UIView有一个2px边框:

self.layer.borderColor = [UIColor whiteColor].CGColor;
self.layer.borderWidth = 2.0f;

然而,当我缩放视图时,边框的大小也会增大。如何保持忽略视图比例的一致边框?

2 个答案:

答案 0 :(得分:3)

更改视图缩放时...:

self.layer.borderWidth = 2.0f / scaleFactor;

答案 1 :(得分:0)

缩放的目的及其预期的行为是,2px帧可以与剩余视图一起放大或缩小。

您可以使用一个具有框架颜色的视图,并在顶部设置一个4px / 4px较小且位于2/2的视图,该视图仅显示没有框架的剩余视图。

然后相应地更改底层(框架)视图的框架。然后相应地缩放子视图。确保它保持居中或仍然从(2/2)开始。