簡體   English   中英

每個布局的iOS自動調整大小代碼

[英]iOS auto_resizing code for each layouts

嗨,我正在使用下面的代碼創建視圖。 我想使此代碼自動布局到每種iPhone尺寸。 我應該添加哪些代碼?

視圖中的該代碼中存在四個表情符號,因此我想使它們各自調整大小,而與iPhone 8,SE,8 +等iPhone布局無關。

import UIKit

class ViewController: UIViewController {
    override func viewDidLoad() {
    super.viewDidLoad()
}
let firstView:UIImageView = {
    let imageView = UIImageView()
    imageView.image = #imageLiteral(resourceName: "angry").withRenderingMode(.alwaysOriginal)
    imageView.contentMode = .scaleAspectFill
    imageView.clipsToBounds = true
    imageView.translatesAutoresizingMaskIntoConstraints = false
    return imageView
}()
let secondView:UIImageView = {
    let imageView = UIImageView()
    imageView.image = #imageLiteral(resourceName: "crying").withRenderingMode(.alwaysOriginal)
    imageView.contentMode = .scaleAspectFill
    imageView.clipsToBounds = true
    imageView.translatesAutoresizingMaskIntoConstraints = false
     return imageView
}()

let thirdView:UIImageView = {
    let imageView = UIImageView()
    imageView.image = #imageLiteral(resourceName: "heartEmpty").withRenderingMode(.alwaysOriginal)
    imageView.contentMode = .scaleAspectFill
    imageView.clipsToBounds = true
    imageView.translatesAutoresizingMaskIntoConstraints = false
    return imageView
}()

let fourthView:UIImageView = {
    let imageView = UIImageView()
    imageView.image = #imageLiteral(resourceName: "joy").withRenderingMode(.alwaysOriginal)
    imageView.contentMode = .scaleAspectFill
    imageView.clipsToBounds = true
    imageView.translatesAutoresizingMaskIntoConstraints = false
    return imageView
}()


func setupViews() {

    view.addSubview(firstView)

   // setup first view
    firstView.leftAnchor.constraint(equalTo: view.leftAnchor, constant: 20).isActive = true
    firstView.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
    firstView.widthAnchor.constraint(equalToConstant: 80).isActive = true
    firstView.heightAnchor.constraint(equalToConstant: 80).isActive = true

    view.addSubview(secondView)

// setup second view
    secondView.leftAnchor.constraint(equalTo: firstView.rightAnchor, constant: 20).isActive = true
    secondView.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
    secondView.widthAnchor.constraint(equalToConstant: 80).isActive = true
   secondView.heightAnchor.constraint(equalToConstant: 80).isActive = true
view.addSubview(thirdView)

   thirdView.leftAnchor.constraint(equalTo: secondView.rightAnchor, constant: 20).isActive = true
   thirdView.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
   thirdView.widthAnchor.constraint(equalToConstant: 80).isActive = true
   thirdView.heightAnchor.constraint(equalToConstant: 80).isActive = true
   view.addSubview(fourthView)

   fourthView.leftAnchor.constraint(equalTo: thirdView.rightAnchor, constant: 20).isActive = true
  fourthView.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
   fourthView.widthAnchor.constraint(equalToConstant: 80).isActive = true
   fourthView.heightAnchor.constraint(equalToConstant: 80).isActive = true
 }

}

最好將它們全部插入到具有fill- UIStackView的水平UIStackView ,通過此項將根據當前stackview的大小進行調整

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM