开发者社区> 问答> 正文

实现从SwiftUI到UIView的填充

在SwiftUI中,您可以通过以下代码轻松地实现填充:

Text("Hello World!")
  .padding(20)

https://i.stack.imgur.com/qdpHGl.png 在UIKit,我有什么选择来实现同样的目标?

展开
收起
游客5akardh5cojhg 2019-12-07 18:50:53 567 0
1 条回答
写回答
取消 提交回答
  • 好的,最简单的是基于corse Storyboard的方法(如@sagar_chauhan所示).

    下面是提供的逐行游乐场变体(例如,按代码行与SwiftUI预览进行比较)。

    import UIKit
    import PlaygroundSupport
    
    class MyViewController : UIViewController {
        override func loadView() {
            let view = UIView(frame: CGRect(x: 0, y: 0, width: 375, height: 677))
            view.translatesAutoresizingMaskIntoConstraints = false
            view.backgroundColor = .white
    
            self.view = view
        }
    
        override func viewDidAppear(_ animated: Bool) {
            super.viewDidAppear(animated)
    
            let label = UILabel(frame: .zero)
            label.translatesAutoresizingMaskIntoConstraints = false
            label.text = "Hello World!"
            label.textColor = .black
            label.backgroundColor = .yellow
            label.textAlignment = .center
    
            self.view.addSubview(label)
    
            let fitSize = label.sizeThatFits(view.bounds.size)
            label.widthAnchor.constraint(equalToConstant: fitSize.width + 12.0).isActive = true
            label.heightAnchor.constraint(equalToConstant: fitSize.height + 12.0).isActive = true
    
    
            label.topAnchor.constraint(equalTo: self.view.centerYAnchor).isActive = true
            label.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true
        }
    }
    
    PlaygroundPage.current.liveView = MyViewController()
    
    2019-12-07 18:52:14
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载