标签: snapkit

使用SnapKit约束动画

我正在尝试使用SnapKit实现2个视图的动画。

这是我的动画视图:

class MatchAnimation: UIView {

    let viewBackground: UIView = {
        let view = UIView()
        view.backgroundColor = UIColor(red: 0/255, green: 0/255, blue: 0/255, alpha: 0.75)
        view.alpha = 1
        return view
    }()

    let matchView: UIView = {
        let view = UIView()
        return view
    }()

    let matchLabel: UILabel = {
        let label = UILabel()
        label.text = "Title"
        label.textColor = .white
        label.textAlignment = .center
        return label
    }()

    let leftAvatarBg: UIView = {
        let view = UIView()
        view.backgroundColor = .white
        view.layer.cornerRadius = 91/2
        return …
Run Code Online (Sandbox Code Playgroud)

animation ios swift snapkit

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

使用Swift 3中的SnapKit以编程方式修改约束以删除一个UIView

我正在修改UIView高度的约束,包括nameTextField和使用SnapKit的superView inputContainerView.我安排nameTextField的高度等于inputContainerView的高度的三分之一.我的目的是在按下SegmentedControl时删除nameTextField.当我尝试修改常量时,它工作得很好.但是当我尝试将乘数高度值从(1/3)修改为0时,有时它会崩溃,有时我写的其他textField(passwordTextField和emailTextField)也会消失.我正在使用updateContraint来更新一些约束.我该如何解决这个问题?谢谢

inputContainerView.snp.makeConstraints { (make) in
        make.centerX.equalTo(view.snp.centerX)
        make.centerY.equalTo(view.snp.centerY)
        // constraintAnchor is equal to offset
        make.width.equalTo(view.snp.width).offset(-24)
        make.height.equalTo(150)
    }

    // constraint for nameTextField
    inputContainerView.addSubview(nameTextField)
    //x y width height constraint using Snap Kit
    nameTextField.snp.makeConstraints { (make) in
        make.left.equalTo(inputContainerView.snp.left).offset(12)
        make.top.equalTo(inputContainerView.snp.top)
        make.width.equalTo(inputContainerView.snp.width)
        make.height.equalTo(inputContainerView.snp.height).multipliedBy(0.333)
    }
func handleLoginRegisterChange() {
    let title = loginRegisterSegmentedControl.titleForSegment(at: loginRegisterSegmentedControl.selectedSegmentIndex)
    loginRegisterButton.setTitle(title, for: .normal)

    // change height of inputcontainerview
    if loginRegisterSegmentedControl.selectedSegmentIndex == 0 {
        inputContainerView.snp.updateConstraints({ (update) in
            update.height.equalTo(100)
        })
        nameTextField.snp.remakeConstraints({ (remake) in
            remake.height.equalTo(inputContainerView.snp.height).multipliedBy(0)
        })
    } else if loginRegisterSegmentedControl.selectedSegmentIndex == 1 {
        inputContainerView.snp.updateConstraints({ (update) in …
Run Code Online (Sandbox Code Playgroud)

uiview ios swift snapkit

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

UIScrollView 项目没有从后台移动

我设置了我的约束,以便在您加载时有一个占据屏幕的图表,但您可以向下滚动以查看更多信息。但是,我可以看到滚动条在移动,而图表没有移动!

var scrollView: UIScrollView {
    let scroll = UIScrollView()
    self.view.addSubview(scroll)
    scroll.snp.makeConstraints { (make) in
        make.edges.equalTo(self.view)
    }
    return scroll

}
var contentView: UIView {
    let content = UIView()
    self.scrollView.addSubview(content)
    content.snp.makeConstraints { (make) in
        make.top.bottom.equalTo(self.scrollView)
        make.left.right.equalTo(self.view)
        make.width.equalTo(self.scrollView)
    }
    // self.scrollView.contentSize = content.frame.size
    return content
}
override func viewDidLoad() {
    super.viewDidLoad()
    self.contentView.addSubview(self.chart)

    self.chart.snp.makeConstraints { (make) in
        // http://snapkit.io/docs/
        // https://github.com/SnapKit/SnapKit/issues/448
        make.top.equalTo(self.contentView)
        make.left.right.equalTo(self.contentView)
        make.height.equalTo(self.view).offset(-(self.tabBarController?.tabBar.frame.height)!)
    }
    self.scrollView.contentSize = CGSize(width: self.view.frame.width, height: 3000) // Testing

}
Run Code Online (Sandbox Code Playgroud)

所以滚动条会移动,但内容不会。 在此处输入图片说明

uiscrollview autolayout swift snapkit swift4

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

使用自动布局滚动表视图时,避免使用粘滞的标题视图

当前,当滚动表内容时,headerLabel以下滚动并停留在顶部。如何使用自动版式避免这种行为?

var tableView: UITableView!

let headerLabel: UILabel = {
    let label = UILabel(frame: .zero)

    label.font = UIFont.boldSystemFont(ofSize: 34.0)
    label.textColor = .black
    label.textAlignment = .center

    return label
}()

override func viewDidLoad() {
    super.viewDidLoad()

    let barHeight: CGFloat = UIApplication.shared.statusBarFrame.size.height

    tableView = UITableView(frame: CGRect(x: 0, y: barHeight, width: view.frame.width, height: view.frame.height - barHeight))
    tableView.register(UITableViewCell.self, forCellReuseIdentifier: "tableCell")
    tableView.dataSource = self
    tableView.delegate = self
    tableView.separatorStyle = .none

    view.addSubview(headerLabel)
    view.addSubview(tableView)

    headerLabel.snp.makeConstraints { (make) in
        make.top.equalTo(view).offset(35)
        make.width.equalToSuperview()
    }

    tableView.snp.makeConstraints { (make) in
        make.top.equalTo(headerLabel.snp.bottom)
        make.left.bottom.right.equalToSuperview()
    } …
Run Code Online (Sandbox Code Playgroud)

tableview ios autolayout swift snapkit

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

标签 统计

snapkit ×4

swift ×4

ios ×3

autolayout ×2

animation ×1

swift4 ×1

tableview ×1

uiscrollview ×1

uiview ×1