标签: snapkit

Swift SnapKit 如何使用相对位置布局 UIView

func setupPosition() {
        box.snp.makeConstraints{(make)->Void in
        make.edges.equalTo(view).inset(UIEdgeInsetsMake(64+20, 20, 250, 20))
        }

        textField.snp.makeConstraints{(make)->Void in
            make.edges.equalTo(box).inset(UIEdgeInsetsMake(5, 5, 150, 5))

        }

        stackBoxOne.snp.makeConstraints{(make)->Void in
                make.top.equalTo(box).offset(textField.frame.size.height)
                make.left.equalTo(box).offset(5)
                make.bottom.equalTo(box).offset(-90)
                make.right.equalTo(box).offset(-5)
        }
    }
Run Code Online (Sandbox Code Playgroud)

我希望把stackBoxOnetextField。但是上面的代码不起作用。如何修改代码?感谢您的时间。

swift snapkit

2
推荐指数
1
解决办法
1617
查看次数

在SnapKit中,两个视图可以相互隔开吗?

我希望在屏幕上水平地分隔未知数量的按钮.我想知道我是否可以互相创建他们的间距.例如,下面的代码可以工作吗?

    let button1 = UIButton()
    let button2 = UIButton() 
    superview.addSubview(button1)
    superview.addSubview(button2)
    button1.snp_makeConstraints { (make) -> Void in
        make.height.equalTo(100)
        make.top.equalTo(50)
        make.left.equalTo(superview.snp.left)
        make.right.equalTo(button2.snp.right)
        make.width.lessThanOrEqualToSuperview()
    }

    button2.snp_makeConstraints { (make) -> Void in
       make.width.lessThanOrEqualToSuperview()
       make.height.equalTo(100)
       make.top.equalTo(50)
       make.left.equalTo(button1.snp.left)
       make.right.equalTo(superview.snp.right)
    }
Run Code Online (Sandbox Code Playgroud)

swift snapkit

2
推荐指数
1
解决办法
1465
查看次数

使用 SnapKit 的多个视图的等间距

我如何使用 snap kit 来实现视图之间的相同间距(以及 firstSubview.left 和 lastSubview.right 的超级视图),如下图中的条形图(并使用 SnapKit 而不是堆栈视图等)?

在此处输入图片说明

谢谢!

uikit ios swift snapkit

2
推荐指数
1
解决办法
2079
查看次数

如何使用 SnapKit 为 UITextField 和 UILabel 设置约束?

我有一个 [[TextField 需要最大可用宽度----]offset(10.0)][Label]]。我想将 TextFeild 引脚设置为左侧并缩小所有可用空间,而无需修剪标签,并将标签设置为右侧引脚并获得最小的适合尺寸。

lazy var textField: UITextField = {
var textField = UITextField()
textField.placeholder = "Placeholder"
textField.delegate = self
textField.borderStyle = UITextField.BorderStyle.none
textField.keyboardType = UIKeyboardType.numberPad
textField.returnKeyType = UIReturnKeyType.done
textField.setContentHuggingPriority(.defaultHigh, for: .horizontal)

return textField
}()

lazy var measureLabel: UILabel = {
var label = UILabel()
label.numberOfLines = 1
label.setContentHuggingPriority(.defaultLow, for: .horizontal)
label.setContentCompressionResistancePriority(.defaultLow, for: .horizontal)

return label
}()

measureLabel.snp.makeConstraints { (make) in
  make.right.equalTo(self.snp.right)
  make.centerY.equalToSuperview()
}
textField.snp.makeConstraints { (make) in
  make.left.equalToSuperview()
  make.right.equalTo(self.measureLabel.snp.left).offset(-10.0)
  make.centerY.equalToSuperview()
}
Run Code Online (Sandbox Code Playgroud)

autolayout swift snapkit

2
推荐指数
1
解决办法
6858
查看次数

如何考虑 SnapKit 中导航栏的高度?

我对使用 SnapKit 相当陌生,我在互联网上到处搜索,但找不到能回答我的问题的正确资源。所以就这样了。我有一个 UIView,它是控制器视图的子视图,我希望它的高度随着其超级视图的高度而动态变化。像这样:

make.top.left.right.equalTo(view)
make.height.equalTo(view.safeAreaLayoutGuide.snp.height).multipliedBy(0.25)
Run Code Online (Sandbox Code Playgroud)

但是,当视图控制器进入导航控制器并显示导航栏时,我在上面设置的约束不会计算出现的导航栏的高度。所以导航栏只覆盖了我的自定义视图。当您尝试设置如上所述的约束时,我试图弄清楚如何考虑导航栏的高度。有任何想法吗?我尝试过make.height.equalTo(view.layoutMarginsGuide.snp.height).multipliedBy(0.25),但没有运气。

ios cocoapods snapkit

2
推荐指数
1
解决办法
2459
查看次数

更新约束不适用于 UITableView snapkit

当我尝试在创建约束后立即更新 snapkit 约束时,出现Updated constraint could not find existing matching constraint to update错误。我正在使用的代码如下:

let directionList = UITableView()
directionList.delegate = self
directionList.dataSource = self
directionList.tag = DIRECTIONS_TABLE_TAG
self.view.addSubview(directionList)
directionList.snp.makeConstraints{ (make) -> Void in
    make.width.equalToSuperview()
    make.top.equalTo(self.view.snp.bottom)
    make.left.equalToSuperview()
    make.right.equalToSuperview()
    make.bottom.equalToSuperview().offset(-20)
}

directionList.snp.updateConstraints { (make) -> Void in
   make.top.equalTo(self.topDarkBlue.snp.bottom)
}
Run Code Online (Sandbox Code Playgroud)

uitableview ios swift snapkit

1
推荐指数
1
解决办法
1836
查看次数

UITableViewCell - 无法同时满足约束

我使用 SnapKit 来进行约束并以编程方式创建视图。然而,有一件事我无法理解。

我想将子 UIView 添加到表视图单元格的内容视图中并设置其高度。这已经导致了不可满足的约束错误。

我也尝试在表视图中设置(估计)rowHeight,但这没有帮助。

2018-07-14 19:21:38.785556+0200[20027:748731] [LayoutConstraints] Unable to simultaneously satisfy constraints.
    Probably at least one of the constraints in the following list is one you don't want. 
    Try this: 
        (1) look at each constraint and try to figure out which you don't expect; 
        (2) find the code that added the unwanted constraint or constraints and fix it. 
(
    "<SnapKit.LayoutConstraint:0x6000000b6500@WeatherCell.swift#24 UIView:0x7fa342409240.top == UITableViewCellContentView:0x7fa342413970.top>",
    "<SnapKit.LayoutConstraint:0x6000000b7880@WeatherCell.swift#24 UIView:0x7fa342409240.bottom == UITableViewCellContentView:0x7fa342413970.bottom>",
    "<SnapKit.LayoutConstraint:0x6000000b8a80@WeatherCell.swift#26 UIView:0x7fa342409240.height == 145.784842967987>",
    "<NSLayoutConstraint:0x604000282210 'UIView-Encapsulated-Layout-Height' UITableViewCellContentView:0x7fa342413970.height == 146   (active)>" …
Run Code Online (Sandbox Code Playgroud)

ios snapkit

1
推荐指数
1
解决办法
1397
查看次数

为什么 UIStackView 调整排列的子视图的大小?

为什么要UIStackView调整子视图的大小?我认为它的工作时,我设置distribution一样.fill。但.equalSpacing并不暗示有这种行为。我是对的?

let stackView = UIStackView()
    stackView.alignment = .firstBaseline
    stackView.axis = .vertical
    stackView.distribution = .equalSpacing
    stackView.spacing = 0.0
    stackView.translatesAutoresizingMaskIntoConstraints = true
    self.view.addSubview(stackView)

    stackView.snp.makeConstraints { (make) -> Void in
      make.top.equalTo(button.snp.bottom)
      make.left.equalTo(view).offset(16.0)
      make.bottom.equalTo(view)
      make.right.equalTo(view).offset(-16.0)
    }

    let exampleView = UIView(frame: .zero)
    stackView.addArrangedSubview(exampleView)
    exampleView.backgroundColor = .yellow

    exampleView.snp.makeConstraints { (make) in
      make.width.equalToSuperview()
      make.height.equalTo(60.0)
    }
Run Code Online (Sandbox Code Playgroud)

uikit autolayout swift uistackview snapkit

1
推荐指数
1
解决办法
3623
查看次数

在 UIStackView 中以编程方式堆叠视图

我花了很长时间尝试堆叠以编程方式创建的视图。我以编程方式查看了在 UIStackView 中添加视图的示例,但这不起作用。下面列出的是代码,我setUpListings从视图控制器调用。有两个条目,但仅显示一个条目。

import UIKit
import SnapKit

class ListingsView : UIView {
    var containerView: UIView!
    var listingsContainerView: UIStackView!

    init() {
        super.init(frame: CGRect.zero)
        setUpContainerView()
        setUpListingsContainer()
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }

    func setUpContainerView() {
        containerView = UIView()

        self.addSubview(containerView)

        containerView.snp.makeConstraints { (make) in
            make.height.equalTo(self)
            make.width.equalTo(self)

            containerView.backgroundColor = UIColor.white
        }
    }

    func setUpListingsContainer() {
        listingsContainerView = UIStackView()
        listingsContainerView.distribution = .equalSpacing
        listingsContainerView.alignment = .fill
        listingsContainerView.axis = .vertical
        listingsContainerView.spacing = 10
        listingsContainerView.translatesAutoresizingMaskIntoConstraints = false

        containerView.addSubview(listingsContainerView)

        listingsContainerView.snp.makeConstraints { (make) …
Run Code Online (Sandbox Code Playgroud)

uiview swift snapkit

1
推荐指数
1
解决办法
2195
查看次数

如何使用 SnapKit 在 iOS 中使用宽高比约束?

我尝试使用 snapkit 创建 1:1 的宽高比约束。如果我使用故事板,可以简单地使用宽高比约束工具来实现,但使用 SnapKit,这似乎并不那么容易。

我怎样才能做到这一点?

ios swift snapkit

1
推荐指数
1
解决办法
2770
查看次数

标签 统计

snapkit ×10

swift ×8

ios ×5

autolayout ×2

uikit ×2

cocoapods ×1

uistackview ×1

uitableview ×1

uiview ×1