首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏coding...

    Objectiv-C UIKit基础 NSLayoutConstraint的使用(VFL实现)

    orangeView}]; [self.view addConstraints:conV]; //设置blueView水平方向约束 NSArray *conH2 = [NSLayoutConstraint 0 metrics:nil views:@{@"view1":blueView}]; [orangeView addConstraints:conV2]; //设置宽高约束 NSLayoutConstraint *conWidth = [NSLayoutConstraint constraintWithItem:blueView attribute:NSLayoutAttributeWidth relatedBy *conHeight = [NSLayoutConstraint constraintWithItem:blueView attribute:NSLayoutAttributeHeight relatedBy 类方法 + (NSArray<__kindof NSLayoutConstraint *> *)constraintsWithVisualFormat:(NSString *)format options

    62630发布于 2018-08-23
  • 来自专栏张添富的专栏

    iPhoneX 适配实践

    ContentView的布局为: NSLayoutConstraint *top = [NSLayoutConstraint constraintWithItem:contentView attribute *left = [NSLayoutConstraint constraintWithItem:contentView attribute:NSLayoutAttributeLeft relatedBy *right = [NSLayoutConstraint constraintWithItem:contentView attribute:NSLayoutAttributeRight relatedBy constraintEqualToConstant:44]; [NSLayoutConstraint activateConstraints:@[left, right, bottom, height 比如原生代码调用: NSLayoutConstraint *top = [NSLayoutConstraint constraintWithItem:contentView attribute:NSLayoutAttributeTop

    4.6K41发布于 2017-10-17
  • 来自专栏移动端周边技术扩展

    iOS11 UIBarButtonItem无法偏移问题坑

    && view.superview) { if (self.position == SXBarViewPositionLeft) { for (NSLayoutConstraint constraint]; } } [view.superview addConstraint:[NSLayoutConstraint self.applied = YES; } else if (self.position == SXBarViewPositionRight) { for (NSLayoutConstraint constraint]; } } [view.superview addConstraint:[NSLayoutConstraint

    1.9K70发布于 2018-06-15
  • 来自专栏练小习的专栏

    swift下autolayout的实现笔记

    setTranslatesAutoresizingMaskIntoConstraints(false) //设置在约束布局系统中是否把自动布局转换为约束布局 self.view.addSubview(v1) 然后添加约束 self.view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat NSTextAlignment.Center v3.text = "v3" self.view.addSubview(v3) self.view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat DirectionLeadingToTrailing, metrics: nil, views: ["v1":v1])) self.view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat , metrics: nil, views: ["v2":v2,"v3":v3])) self.view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat metrics: nil, views: ["v1":v1, "v2":v2,"v3":v3])) self.view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat

    1.1K80发布于 2017-12-29
  • 来自专栏浮躁的喧嚣

    iOS-屏幕适配实现(AutoLayout)

    :(NSArray<__kindof NSLayoutConstraint *> *)constraints - (void)removeConstraint:(NSLayoutConstraint * )constraint - (void)removeConstraints:(NSArray<__kindof NSLayoutConstraint *> *)constraints 注意: 1.先禁止 *xConstraint = [NSLayoutConstraint constraintWithItem:redView attribute:NSLayoutAttributeLeft relatedBy *yConstraint = [NSLayoutConstraint constraintWithItem:redView attribute:NSLayoutAttributeTop relatedBy *heightConstraint = [NSLayoutConstraint constraintWithItem:redView attribute:NSLayoutAttributeHeight

    1.8K10编辑于 2023-11-22
  • 来自专栏一“技”之长

    iOS界面布局之三——纯代码的autoLayout及布局动画

    创建NSLayoutConstraint对象的方法有两种,下面我们分别介绍: 1、使用Objective-C风格的方法创建约束对象         所谓Objective-C风格的方法,就是通过原生枚举和一些属性设置来创建 NSLayoutConstraint对象。 使用NSLayoutConstraint类的如下方法: +(instancetype)constraintWithItem:(id)view1 attribute:(NSLayoutAttribute)  * constraintw = [NSLayoutConstraint constraintWithItem:label attribute:NSLayoutAttributeWidth relatedBy 相对于NSLayoutConstraint中的创建方法如下: + (NSArray<__kindof NSLayoutConstraint *> *)constraintsWithVisualFormat

    3.4K30发布于 2018-08-15
  • 来自专栏移动开发面面观

    iOS自动布局——Masonry详解

    //创建左边约束 NSLayoutConstraint *leftLc = [NSLayoutConstraint constraintWithItem:blueView attribute:NSLayoutAttributeLeft *leftLc = [NSLayoutConstraint constraintWithItem:blueView attribute:NSLayoutAttributeLeft relatedBy: *rightLc = [NSLayoutConstraint constraintWithItem:blueView attribute:NSLayoutAttributeRight relatedBy MASLayoutConstraint就是NSLayoutConstraint的子类,只是添加了mas_key属性。 到这里,我们就与系统提供的API对应上了。 NSLayoutConstraint *leftLc = [NSLayoutConstraint constraintWithItem:blueView attribute:NSLayoutAttributeLeft

    1.3K20发布于 2018-07-03
  • 来自专栏浮躁的喧嚣

    iOS-屏幕适配实现(VFL)

    ; //水平约束 NSString *vfl1 = @"H:|-50-[blueView(width)]-30-[redView(width)]"; NSArray *constraints1 = [NSLayoutConstraint addConstraints:constraints1]; //垂直约束 NSString *vfl2 = @"V:|-100-[blueView(height)]"; NSArray *constraints2 = [NSLayoutConstraint -30-|"; NSDictionary *views = @{@"blueView":blueView}; //metrics参数中做好对应关系 NSArray *constraints1 = [NSLayoutConstraint :constraints1]; NSString *vfl2 = @"V:|-30-[blueView(height)]-30-|"; NSArray *constraints2 = [NSLayoutConstraint addConstraints:constraints1]; NSString *vfl2 = @"V:|-30-[blueView(height)]-30-|"; NSArray *constraints2 = [NSLayoutConstraint

    1.2K10编辑于 2023-11-22
  • 来自专栏码客

    iOS自动布局

    baiduMap); self.mapView.addConstraints(self.layoutConstraints()) } func layoutConstraints() -> [NSLayoutConstraint ]{ let views = ["map": self.baiduMap ] let metrics = ["margin": 0] var result = NSLayoutConstraint.constraintsWithVisualFormat margin)-|", options:NSLayoutFormatOptions.AlignAllTop, metrics: metrics, views: views) result += NSLayoutConstraint.constraintsWithVisualFormat

    49300发布于 2019-10-22
  • 来自专栏ShaoYL

    Autolayout

    比如 只约束了宽度和高度, 没有约束具体的位置 两个约束冲突, 比如 1个约束控件的宽度为100, 1个约束控件的宽度为110 代码实现Autolayout 代码实现Autolayout的步骤 利用NSLayoutConstraint 类创建具体的约束对象 添加约束对象到相应的view上 - (void)addConstraint:(NSLayoutConstraint *)constraint; - (void)addConstraints NO view.translatesAutoresizingMaskIntoConstraints = NO; 添加约束之前,一定要保证相关控件都已经在各自的父控件上 不用再给view设置frame NSLayoutConstraint 一个NSLayoutConstraint对象就代表一个约束 创建约束对象的常用方法 /* view1 :要约束的控件 attr1 :约束的类型(做怎样的约束) relation :与参照控件之间的关系

    1.4K60发布于 2018-05-11
  • 来自专栏谈补锅

    cordova for ios: Unable to simultaneously satisfy constraints.

    ( "<NSLayoutConstraint:0x156734e0 UILabel:0x1568b9f0.width == UIView:0x155d9110.width - 32>", "<NSLayoutConstraint:0x1568db80 UIView:0x155d9110.width == UIView:0x155d8fc0.width>", "<NSLayoutConstraint :0x156913b0 H:[UIView:0x155d8fc0(30)]>" ) Will attempt to recover by breaking constraint <NSLayoutConstraint

    89940发布于 2018-09-27
  • 来自专栏日常技术分享

    iOS 屏幕适配

    floatValue*[[UIScreen mainScreen] bounds].size.width/kDesignWidth) #endif 约束适配 利用IBInspectable关键字和分类 1.写一个NSLayoutConstraint adapterScreen的属性(Bool 值,yes代表需要对屏幕进行等比例适配) #import <UIKit/UIKit.h> NS_ASSUME_NONNULL_BEGIN @interface NSLayoutConstraint nonatomic, assign) IBInspectable BOOL adapterScreen; @end NS_ASSUME_NONNULL_END 2.在adapterScreen的set方法里面对NSLayoutConstraint 对象的constant值进行换算 #import "NSLayoutConstraint+XibScale.h" #import <objc/runtime.h> #import "FitScaleHelper.h " //定义常量 static char *AdapterScreenKey = "AdapterScreenKey"; @implementation NSLayoutConstraint (XibScale

    1.5K20发布于 2021-04-16
  • 来自专栏iOSer

    Cell 动态行高文字显示不全问题探索

    ( "<NSLayoutConstraint:0x6000033a5810 UILabel:0x7f898d0072c0.height == 21 (active)>", "<NSLayoutConstraint :0x6000033a59f0 UILabel:0x7f898d016da0.height >= 20.5 (active)>", "<NSLayoutConstraint:0x6000033df2a0 [UILabel:0x7f898d0072c0] (active, names: '|':UITableViewCellContentView:0x7f898d0061f0 )>", "<NSLayoutConstraint 0x6000033df340 V:[UILabel:0x7f898d0072c0]-(NSSpace(8))-[UILabel:0x7f898d016da0] (active)>", "<NSLayoutConstraint :0x7f898d016da0]-(>=9)-| (active, names: '|':UITableViewCellContentView:0x7f898d0061f0 )>", "<NSLayoutConstraint

    2.9K00发布于 2021-02-07
  • 来自专栏增长技术

    自动布局

    multiplier constant:(CGFloat)constant; Button.centerX = Superview.centerX // => [NSLayoutConstraint multiplier:1.0 constant:0.0]; Button.bottom = Superview.bottom - <padding> // => [NSLayoutConstraint

    51720发布于 2018-09-06
  • 来自专栏iOSer

    Cell 动态行高文字显示不全问题探索

    ( "<NSLayoutConstraint:0x6000033a5810 UILabel:0x7f898d0072c0.height == 21 (active)>", "<NSLayoutConstraint :0x6000033a59f0 UILabel:0x7f898d016da0.height >= 20.5 (active)>", "<NSLayoutConstraint:0x6000033df2a0 [UILabel:0x7f898d0072c0] (active, names: '|':UITableViewCellContentView:0x7f898d0061f0 )>", "<NSLayoutConstraint 0x6000033df340 V:[UILabel:0x7f898d0072c0]-(NSSpace(8))-[UILabel:0x7f898d016da0] (active)>", "<NSLayoutConstraint :0x7f898d016da0]-(>=9)-| (active, names: '|':UITableViewCellContentView:0x7f898d0061f0 )>", "<NSLayoutConstraint

    2.4K20发布于 2021-02-25
  • 来自专栏青玉伏案

    iOS开发之Masonry框架源码解析

    Masonry简化了NSLayoutConstraint的使用方式,让我们可以以链式的方式为我们的控件指定约束。 一、Masonry框架与NSLayoutConstraint调用方式的对比 首先我们NSLayoutConstraint为我们的View添加一个约束,然后再给出Masonry的代码。 MASConstraintMaker之所以成为约束工厂类,因为MASConstraintMaker赋值创建NSLayoutConstraint对象,因为Masonry将NSLayoutConstraint 下方代码就是install中根据MASViewConstraint所收集的参数来创建NSLayoutConstraint对象,下方的MASLayoutConstraint其实就是NSLayoutConstraint 下方就是调用系统的NSLayoutConstraint为创建相应的约束对象,下方的构造器与第一部分中的NSLayoutConstraint一致。 ?

    1.6K80发布于 2018-01-11
  • 来自专栏王大锤

    iOS11UINavigationBar的item左右间距调整

    margin = 4.0f; } [view.superview addConstraint:[NSLayoutConstraint margin = -4.0f; } [view.superview addConstraint:[NSLayoutConstraint *leadingConstraint = [NSLayoutConstraint constraintWithItem:view attribute:NSLayoutAttributeLeading margin = -kAppAdaptHeight(15); //删除原来的leading约束 for (NSLayoutConstraint *trailingConstraint = [NSLayoutConstraint constraintWithItem:view attribute:NSLayoutAttributeTrailing

    3.6K50发布于 2018-05-17
  • 来自专栏王大锤

    iOS11UINavigationBar的item左右间距调整

    margin = 4.0f; } [view.superview addConstraint:[NSLayoutConstraint margin = -4.0f; } [view.superview addConstraint:[NSLayoutConstraint *leadingConstraint = [NSLayoutConstraint constraintWithItem:view attribute:NSLayoutAttributeLeading margin = -kAppAdaptHeight(15); //删除原来的leading约束 for (NSLayoutConstraint *trailingConstraint = [NSLayoutConstraint constraintWithItem:view attribute:NSLayoutAttributeTrailing

    1.9K30发布于 2018-07-04
  • 来自专栏鹅厂优文

    iOS自动布局——Masonry详解

    //创建左边约束    NSLayoutConstraint *leftLc = [NSLayoutConstraint constraintWithItem:blueView attribute:NSLayoutAttributeLeft *leftLc = [NSLayoutConstraint constraintWithItem:blueView attribute:NSLayoutAttributeLeft relatedBy: *rightLc = [NSLayoutConstraint constraintWithItem:blueView attribute:NSLayoutAttributeRight relatedBy MASLayoutConstraint就是NSLayoutConstraint的子类,只是添加了mas_key属性。到这里,我们就与系统提供的API对应上了。     NSLayoutConstraint *leftLc = [NSLayoutConstraint constraintWithItem:blueView attribute:NSLayoutAttributeLeft

    3.6K80发布于 2018-04-11
  • 来自专栏云原生布道专栏

    【IOS开发基础系列】Autolayout自动布局专题

    . - (void) addConstraint: (NSLayoutConstraint *) constraint    NS_AVAILABLE_IOS (6_0);     2. - (void 就是上面所加入到NSDictionary中的绑定的View;         在这里要注意的是AddConstraints  和AddConstraint之间的区别,一个添加的参数是NSArray,一个是NSLayoutConstraint NO; [self.view addSubview: v2];    //添加两个允许自动布局的子视图 //设置子视图的宽度和父视图的宽度相同 [self.view addConstraint: [NSLayoutConstraint |-0-[v1][v2(==v1)]|"options:0 metrics:nil views:views]]; //最后是垂直布局两个子view [self.viewaddConstraints:[NSLayoutConstraint 2.2 AutoLayout框架介绍(ZXPAutoLayout)         iOS原生的自动布局(NSLayoutConstraint)非常繁琐, 影响开发进度和可读性也不利于维护, 正所谓工欲善其事必先利其器

    1.1K40编辑于 2023-10-16
领券