【问题标题】:convert custom view bounds to frame coordinates - iOS Swift将自定义视图边界转换为帧坐标 - iOS Swift
【发布时间】:2018-03-11 20:52:29
【问题描述】:

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

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

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

请告知如何实现这一目标

【问题讨论】:

  • 使用相关代码更新您的问题。清楚地解释您需要帮助解决的问题。

标签: ios swift uiview cgrect cgpoint


【解决方案1】:

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

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

2) 在父视图的笛卡尔坐标系(x,y)中找到这个矩形的origin(设置为左上角)您正在创建的视图,作为 t父视图的宽度和高度 的函数。

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-27
    • 1970-01-01
    • 2021-08-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    • 2022-12-28
    • 2021-09-03
    相关资源
    最近更新 更多