所以我有一个 uiview,它使用一个框架初始化,该框架具有为用户提供的高度和宽度,我希望用户能够在此框架内绘制,但是当用户按下按钮时,我希望视图剪切消除多余的浪费空间,使框架仅与用户绘制的一样大。我试图做这样的事情
CGRect boundbox = CGPathGetBoundingBox([myPath CGPath]);
boundbox.origin.x = self.frame.origin.x;
boundbox.origin.y = self.frame.origin.y;
self.frame = boundbox;
然而,这并没有消除额外浪费的空间,它只是调整视图的大小,使绘制的内容看起来比以前更小。我想做的是删除那个“空白”,我在想是否可以扩大uiview的内容,但我不确定。
为了澄清我的意思:
红色边框是用户可以绘制的区域/框架,中间的文本是一幅图画,当用户按下按钮时,我希望框架只包围图画,如图 2 所示。
现在假设我有以下场景,我在屏幕中间画了一个圆圈。
然后当我按下按钮时,比例保持不变,但圆圈仍然在相同的位置,但我们现在已经更改了绘图区域,所以圆圈/绘图看起来像图 4 中的截断。
我想要做的是移动绘图/贝塞尔路径,使其位于框架的中间。使红色区域包围蓝色圆圈。