设置拐角半径时,UIView框架略有不同 最小工作示例Swift Playround:

问题描述

我正在绘制一系列触摸彼此边缘的UIView。 但是,当我设置view.layer.cornerRadius时,它们会稍微偏离对齐状态,从而造成伪影。有什么解决办法吗?

corner

no corner

最小工作示例(Swift Playround):

似乎取决于浮点坐标。 不过,我希望有一个版本不需要我将坐标四舍五入为整数。

import UIKit
import PlaygroundSupport

class ViewController: UIViewController {
    
    override func viewDidLoad(){
        super.viewDidLoad()
        self.view.backgroundColor = .white
        
        let rect11 = UIView(frame: CGRect(x: 100,y: 100.15,width: 100,height: 100))
        let rect12 = UIView(frame: CGRect(x: 100,y: 200.15,height: 100))
        
        let rect21 = UIView(frame: CGRect(x: 300,height: 100))
        let rect22 = UIView(frame: CGRect(x: 300,height: 100))
        
        rect21.layer.cornerRadius = 10
        rect22.layer.cornerRadius = 10
        
        rect11.backgroundColor = .black
        rect12.backgroundColor = .black
        rect21.backgroundColor = .black
        rect22.backgroundColor = .black
        
        self.view.addSubview(rect11)
        self.view.addSubview(rect12)
        self.view.addSubview(rect21)
        self.view.addSubview(rect22)
    }
}

let controller = ViewController()

PlaygroundPage.current.liveView = UINavigationController(rootViewController: controller)

example output

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...