专业java、php、iOS、C++、网页设计、平面设计、网络营销、游戏开发、前端与移动开发培训机构
自动布局设置控件位置
AutoLayout
约束:- 要确定一个view的约束.需要指定
位置约束
和尺寸约束
- 位置约束分为:
水平方向(x)
和垂直方向(y)
- 要确定一个view的约束.需要指定
设置自动布局
// MARK: - 准备UI private func setupUI() { // 添加子控件 addSubview(iconView) addSubview(homeView) addSubview(messageLabel) addSubview(registerButton) addSubview(loginButton) // 设置布局 // 使用自动约束一定要设置成false. iconView.translatesAutoresizingMaskIntoConstraints = false homeView.translatesAutoresizingMaskIntoConstraints = false messageLabel.translatesAutoresizingMaskIntoConstraints = false registerButton.translatesAutoresizingMaskIntoConstraints = false loginButton.translatesAutoresizingMaskIntoConstraints = false // iconView X方向 addConstraint(NSLayoutConstraint(item: iconView, attribute: NSLayoutAttribute.centerX, relatedBy: NSLayoutRelation.equal, toItem: self, attribute: NSLayoutAttribute.centerX, multiplier: 1, constant: 0)) // iconView Y方向 addConstraint(NSLayoutConstraint(item: iconView, attribute: NSLayoutAttribute.centerY, relatedBy: NSLayoutRelation.equal, toItem: self, attribute: NSLayoutAttribute.centerY, multiplier: 1, constant: -40)) // 房子 // X方向 addConstraint(NSLayoutConstraint(item: homeView, attribute: NSLayoutAttribute.centerX, relatedBy: NSLayoutRelation.equal, toItem: iconView, attribute: NSLayoutAttribute.centerX, multiplier: 1, constant: 0)) // Y方向 addConstraint(NSLayoutConstraint(item: homeView, attribute: NSLayoutAttribute.centerY, relatedBy: NSLayoutRelation.equal, toItem: iconView, attribute: NSLayoutAttribute.centerY, multiplier: 1, constant: 0)) // 消息label. CenterX和iconView.CenterX重合.,宽度224 addConstraint(NSLayoutConstraint(item: messageLabel, attribute: NSLayoutAttribute.centerX, relatedBy: NSLayoutRelation.equal, toItem: iconView, attribute: NSLayoutAttribute.centerX, multiplier: 1, constant: 0)) // 顶部距离iconView底部16 addConstraint(NSLayoutConstraint(item: messageLabel, attribute: NSLayoutAttribute.top, relatedBy: NSLayoutRelation.equal, toItem: iconView, attribute: NSLayoutAttribute.bottom, multiplier: 1, constant: 16)) // 如果不参照其他控件toItem填nil. attribute填: NSLayoutAttribute.NotAnAttribute addConstraint(NSLayoutConstraint(item: messageLabel, attribute: NSLayoutAttribute.width, relatedBy: NSLayoutRelation.equal, toItem: nil, attribute: NSLayoutAttribute.notAnAttribute, multiplier: 1, constant: 224)) // 注册按钮 // 顶部距离messageLabel 16 addConstraint(NSLayoutConstraint(item: registerButton, attribute: NSLayoutAttribute.top, relatedBy: NSLayoutRelation.equal, toItem: messageLabel, attribute: NSLayoutAttribute.bottom, multiplier: 1, constant: 16)) // 左边和messageLabel的左边重合 addConstraint(NSLayoutConstraint(item: registerButton, attribute: NSLayoutAttribute.left, relatedBy: NSLayoutRelation.equal, toItem: messageLabel, attribute: NSLayoutAttribute.left, multiplier: 1, constant: 0)) // 宽度 100 addConstraint(NSLayoutConstraint(item: registerButton, attribute: NSLayoutAttribute.width, relatedBy: NSLayoutRelation.equal, toItem: nil, attribute: NSLayoutAttribute.notAnAttribute, multiplier: 1, constant: 100)) // 高度 35 addConstraint(NSLayoutConstraint(item: registerButton, attribute: NSLayoutAttribute.height, relatedBy: NSLayoutRelation.equal, toItem: nil, attribute: NSLayoutAttribute.notAnAttribute, multiplier: 1, constant: 35)) // 注册按钮 // 顶部距离messageLabel 16 addConstraint(NSLayoutConstraint(item: loginButton, attribute: NSLayoutAttribute.top, relatedBy: NSLayoutRelation.equal, toItem: registerButton, attribute: NSLayoutAttribute.top, multiplier: 1, constant: 0)) // 左边和messageLabel的左边重合 addConstraint(NSLayoutConstraint(item: loginButton, attribute: NSLayoutAttribute.right, relatedBy: NSLayoutRelation.equal, toItem: messageLabel, attribute: NSLayoutAttribute.right, multiplier: 1, constant: 0)) // 宽度 100 addConstraint(NSLayoutConstraint(item: loginButton, attribute: NSLayoutAttribute.width, relatedBy: NSLayoutRelation.equal, toItem: registerButton, attribute: NSLayoutAttribute.width, multiplier: 1, constant: 0)) // 高度 35 addConstraint(NSLayoutConstraint(item: loginButton, attribute: NSLayoutAttribute.height, relatedBy: NSLayoutRelation.equal, toItem: registerButton, attribute: NSLayoutAttribute.height, multiplier: 1, constant: 0)) }
- 按钮图片切片