ViewDidLoad中的UITextField的舍入角仅影响左角

Amr*_*med 4 uitextfield viewdidload ios autolayout swift

我试图围绕两个UITextField的顶部和底部边框

结果在 ViewDidLoad()

ViewDidLoad结果

结果在 ViewDidAppear

ViewDidAppear结果

问题是ViewDidAppear在加载视图半秒后使边框发生变化,这对我的情况不利,

任何人都知道为什么它只是在ViewDidLoad方法的左角?

任何建议赞赏?

*更新*

viewDidLayoutSubviews 是相同的 ViewDidLoad

这是我用来绕角的代码

extension UITextField {
    func roundCorners(corners:UIRectCorner, radius: CGFloat) {
        let path = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
        let mask = CAShapeLayer()
        mask.path = path.CGPath
        self.layer.masksToBounds = true
        self.layer.mask = mask
    }
}
Run Code Online (Sandbox Code Playgroud)

self.FirstTextField.roundCorners(UIRectCorner.TopRight | UIRectCorner.TopLeft, radius: 10.0)
self.SecondTextField.roundCorners(UIRectCorner.BottomLeft | UIRectCorner.BottomRight, radius: 10.0)
Run Code Online (Sandbox Code Playgroud)

Amr*_*med 5

我曾经期望解决这个问题的一件事是在主队列上调度

dispatch_async(dispatch_get_main_queue(),{
      self.FirstTextField.roundCorners(UIRectCorner.TopRight | UIRectCorner.TopLeft, radius: 10.0)
      self.SecondTextField.roundCorners(UIRectCorner.BottomLeft | UIRectCorner.BottomRight, radius: 10.0)
});
Run Code Online (Sandbox Code Playgroud)

现在我不知道这是否效率低,但是它的确有效:D

如果有人有更好的答案请发布:)