【问题标题】:UITextfield rotation with CGAffineTransformMakeRotation not calculating correctly使用 CGAffineTransformMakeRotation 的 UITextfield 旋转未正确计算
【发布时间】:2020-04-08 13:55:31
【问题描述】:

我正在尝试使用 CGAffineTransformMakeRotation 旋转 UITextfield 以匹配屏幕上绘制的三角形的角度。 如图所示,旋转角度不正确。

计算角度 i 使用 :-

viewwidth = topView2.bounds.size.width/2;
viewheight = topView2.bounds.size.height;
angle = atan(viewheight/viewwidth);

旋转我正在使用的文本字段:-

 [self->textField7 setTransform:CGAffineTransformMakeRotation(-self->angle)];

结果并不令人满意。 您可以在屏幕截图中看到,文本字段未以与绘制线相同的角度旋转。 屏幕截图中心的值显示了上述代码中的视图高度、宽度和角度,以弧度表示。

谁能告诉我我做错了什么。

谢谢

【问题讨论】:

    标签: uitextfield cgaffinetransform


    【解决方案1】:

    如果您沿着 9,579,739,797 的基线画一条线,它会一直延伸到下午 4:40 的中间。在我看来,您使用的高度错误:

    viewheight = topView2.bounds.size.height;
    

    您似乎没有考虑屏幕顶部的内容(绿线和/或导航栏)或屏幕底部的内容(靛蓝线和/或标签栏)

    【讨论】:

    • 我做了更多的钓鱼,发现 drawrect 用于渲染三角形的 Rect 大小是 375 宽和 415 高。这就是角度计算错误的原因,但我不明白为什么drawrect的大小与视图不同。视图大小在图片上,代表图片上的白色区域,您能解释一下如何将正确的视图大小传递给 drawrect
    • 您是否使用过 XCode 上的“Debug View Hierarchy”按钮来确保视图是您认为的样子,并且没有被其他东西掩盖一点?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多