将自定义视图边界转换为框架坐标 - iOS Swift

convert custom view bounds to frame coordinates - iOS Swift

我在视图控制器中有一个自定义视图。我正在尝试从视图控制器设置自定义视图的 CGRect

我在自定义视图中还有几个按钮,我想根据框架的坐标定位它们,但在 ovveride 绘制方法中,它需要视图边界。

我希望使用框架坐标而不是边界绘制所有视图

请教如何实现

当您以编程方式实例化视图时,您应该执行以下操作:

1) 定义将包含您的视图的矩形的大小

2) 在笛卡尔坐标系(x,y)[=34]中求出这个矩形(设置为左上角)的原点 =] 您正在创建的视图的父视图,作为 the width 和 parent View 的高度的函数。

3) 将视图的框架设置为 myView.frame = CGRect(origin: myOrigin, size: mySize) 您应该始终使用 'frame' 属性 来定义新视图。

我通常使用自定义视图,其中包含许多其他自定义视图、自定义按钮......最好的方法(尤其是当它变得复杂时),是拿纸和铅笔,画出父视图的 (x,y) 轴(y 指向下方并且 x 指向右侧)并找到所有原点的所有坐标根据您正在工作的视图的宽度和高度。

当您使用 UIView(或任何其他对象)的子类时,您可以轻松使用 坐标系统 定义在视图的原点 您正在创建(在 draw method

希望这对您有所帮助,如果您需要更具体的帮助,可以发布您的代码!