NSLayoutConstraint-代码实现自动布局的函数用法说明
发布日期:2021-05-24 08:24:29 浏览次数:19 分类:精选文章

本文共 1891 字,大约阅读时间需要 6 分钟。

NSLayoutConstraint 是一个强大的工具,用于在iOS和OSX应用程序中创建和管理布局约束。以下是其中一个最常用的方法,看看它的具体参数和用法。

nsLayoutConstraint 的主要功能

NSLayoutConstraint_setItem : 以一个特定的视图作为左侧,设置一个特定的布局属性,然后与另一个视图建立关联关系。例如:

_nsLayoutConstraint(enumerate items, attributes) 是创建约束关系的主要方法。

调用说明

  • 第一个参数:指定左边的视图(即第一个约束项)。
  • 第二个参数:指定左边视图的布局属性(例如:NSLayoutAttributeLeft、NSLayoutAttributeRight等)。
  • 第三个参数:指定关系类型(NSLayoutRelation_lessOrEqual、NSLayoutRelation_equal、NSLayoutRelation_greaterOrEqual等)。
  • 第四个参数:指定右边的视图。
  • 第五个参数:指定右边视图的布局属性。
  • 第六个参数:指定一个与右边视图属性相乘的缩放系数(默认为1,表示直接关联)。
  • 第七个参数:指定一个与右边视图属性相加的常数值。
  • 关系与公式

    约束关系可以通过公式确定:

    _selectedView.left = [anotherView.right] * multiplier + constant

    或者: _selectedView.leadingAnchorRETURN ANALYZING ANOTHER_VIEW.right_LEADING 到 DIFFERENTLY

    以下是NSLayoutRelation的具体实现:

    • NSLayoutRelation_lessOrEqual (-1)
    • NSLayoutRelation_equal (0)
    • NSLayoutRelation_greaterOrEqual (1)

    注意:

    当不需要第二个视图时,输入nil作为第四个参数,并将第五个参数设为 NSLayoutAttributeNotAnAttribute。

    示例代码

    NSLayoutConstraint constraintWithItem:view1 attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:view2 attribute: NSLayoutAttributeRight multiplier:1 constant:10

    这意味着:

    view1的左边将等于view2的右边,再加上10点的空间。

    布局属性定义

    typedef NSEnumeration(NSInteger NSLayoutRelation) {
    NSLayoutRelation_lessOrEqual = -1
    NSLayoutRelation_equal = 0
    NSLayoutRelation_greaterOrEqual = 1
    }
    typedef NSEnumeration(NSInteger NSLayoutAttribute) {
    NSLayoutAttributeLeft = 1
    NSLayoutAttributeRight
    NSLayoutAttributeTop
    NSLayoutAttributeBottom
    NSLayoutAttributeLeading
    NSLayoutAttributeTrailing
    NSLayoutAttributeWidth
    NSLayoutAttributeHeight
    NSLayoutAttribute_centerX
    NSLayoutAttribute_centerY
    NSLayoutAttribute_basline
    NSLayoutAttribute_notAnAttribute = 0
    }

    需要注意的是:

    NSLayoutAttributeLeft 和 NSLayoutAttributeRight 是左右方向的统一定义。
    而 NSLayoutAttributeLeading 和 NSLayoutAttributeTrailing 则取决于用户的左右习惯,可能需要根据实际情况调整。

    这篇文章源自 "rainbownight" 博客,请在引用时保留此出处。

    上一篇:使用tcpdump在iphone手机上的抓包流程和原理概述
    下一篇:Permission denied错误总结

    发表评论

    最新留言

    留言是一种美德,欢迎回访!
    [***.207.175.100]2025年04月23日 22时40分38秒