精华内容
下载资源
问答
  • Autolayout

    2020-11-27 22:47:06
    But I have one question: In the demo video you turned off autolayout for your storyboard, does this mean AMSlideMenu is not compatible with auto layout? Thanks in advance.</p><p>该提问来源于开源项目&...
  • AutoLayout

    2020-12-01 16:14:11
    <div><p>Whenever I run my...AutoLayout". I've looked, but I can't find the method to call to do perform an auto-layout function.</p><p>该提问来源于开源项目:structurizr/dotnet</p></div>
  • autolayout

    2019-10-02 22:59:51
    autolayout自动布局技术在iOS6就已经推出了,但是因为很多人一开始不习惯使用xib编程,而是坚持使用代码布局控件,所以autolayout并没有普及的太快。但是现在随着越来越多的人开始使用xib,怎样适配不同屏幕的尺寸和...

    autolayout自动布局技术在iOS6就已经推出了,但是因为很多人一开始不习惯使用xib编程,而是坚持使用代码布局控件,所以autolayout并没有普及的太快。但是现在随着越来越多的人开始使用xib,怎样适配不同屏幕的尺寸和横竖屏,成了亟待解决的问题,好在两年前就已经推出并且日臻完善的xib autolayout技术可以完美的解决。

    首先需要说下需求:需要登陆LoginViewController视图View上面的控件居中显示。

    下面我就以一个简单的例子,来简要说明使用autolayout的小技巧,

    (1)拖拉一个View到LoginViewController.xib的视图上面,调整高度为300,我下面都称其为MiddleView吧,如下图所示,

     

    为了让图片垂直居中显示,我们可以通过键盘的上(↑)下(↓)按键移动View。

    (2)拖两个UITextField和一个UIButton到View上面,同时设置了MiddleView的背景色为LightGray,如下图所示,

     

    (3)给MiddleView添加约束,使其水平和竖直居中,先选中MiddleView,然后按照下图操作,

     

    (4)给MiddleView添加宽高(width and height)的约束,上面仅仅添加水平和垂直居中,会有警告,这是因为添加的约束还不够,如下图所示,添加宽高的约束,

     

    (5)给MiddleView上面的空间添加相互间的约束,这时候添加约束就简单多了,先选中MiddleView上面所有的控件,只要点击一个Add Missing Constraints,,如下图所示,

     

    通过上面一些简单的操作,保证登陆界面中的控件不管在3.5寸还是4寸的屏幕上面,都能够居中显示了。运行效果如下所示,

    3.5寸屏幕效果图,

     

    4寸屏幕效果图,

     

    总结:这里的autolayout只是简单的内容,我也只是抛砖引玉。更强大的autolayout还有待个人自己去理解。我想要说的是技术的出现总是不会在第一时间用在实践中,这就造成了技术出现了但是没有人用,而过了很长时间以后,才意识到新出现的技术是多么的重要。所以,我们要乐于去拥抱新出现的技术,哪怕现在使用不上,但是慢慢地学习,总有一天会有所用处。这是我对xib和autolayout技术的普及速度的一些理解,现在还有很多人在使用代码编写控件,他们已经不再愿意相信xib和arc的好处,实际上这不利于自己的进步。我感觉现在使用xib和autolayout,让编程不再那么枯燥无味,我们通过拖拖拉拉,调整大小,感觉自己真的像一个设计师一样。

    还有,现在苹果iOS8新推出了许多特性,开放了很多的开发者权限,想想就是让人激动,所以赶快学习起来吧。另外苹果的swift语言,我们也要好好学习,因为它真的可能取代OC。那么多Java、.Net开发者之前想转向iOS开发,但是限于设备和语言的鸿沟,他们一直没有机会转型,现在苹果的swift提供的便利,给了很多新手和Web开发老手机会转型,他们都在虎视眈眈,那么作为纯粹的iOS开发者,你赶快行动起来吧。早点学好swift,早点受益。

     

    转载于:https://www.cnblogs.com/piaojin/p/4980801.html

    展开全文
  • autoLayout

    2019-09-26 09:44:25
    autoLayout 根据参照视图的位置 来定义自己的位置 autoLayout相对布局 约束视图和视图之间的关系 来分配 屏幕上的位置 // 使用VFL(Visual Format Language 视觉格式语言)通过添加字符串 来约束视图和...
     frame  原点  自身的尺寸 来确定 自身位置
     
     autoLayout  根据参照视图的位置  来定义自己的位置
     
     
     autoLayout相对布局  约束视图和视图之间的关系 来分配 屏幕上的位置
     
     //     使用VFL(Visual Format Language  视觉格式语言)通过添加字符串 来约束视图和视图之间的关系
     
     使用autoLayout 必须把translatesAutoresizingMaskIntoConstraints禁用才可以使用
     相对布局是找一个参照物 拿参照物当做基础,设置他和参照物的相对距离 来设置自己的位置
     
     VFL 需有 横向(H:) 竖向(V:) 两个方向的约束
     -50- 两个视图之间的距离
     H:横向
     | 表示他的父视图
     -50- 表示后面视图 与前面视图的距离 (后面视图是textField,前面视图是他的父视图)
     [textField(>=200)] 要约束视图的宽  (>=200)允许最小的宽度是200  如果是竖向  就是允许最小的高度
     
     @"H:|-50-[textField(>=200)]-50-|"
     
     距离坐边原点距离50   右边边界距离50    允许视图的最小宽度是200
     
     
     V: 竖向
     
     使用autolayout适配的时候  以最小尺寸设备 为基准
     
     //    视图 使用属性的时候   绑定key  需要绑定它真实的名字  _titleLable
     //    self.titleLable = _titleLable
     
     */
    
    #import "ViewController.h"
    
    @interface ViewController ()
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        self.view.backgroundColor = [UIColor grayColor];
        [self demo5];
        
    
    }
    
    //一个视图
    - (void)demo1{
        UIView *view = [[UIView alloc]init];
    //   如果使用autolayout。 translatesAutoresizingMaskIntoConstraints这个属性必须禁用
        view.translatesAutoresizingMaskIntoConstraints = NO;
        view.backgroundColor = [UIColor redColor];
        [self.view addSubview:view];
        
    //    VFL 横向 竖向布局
    //    @"H:"设置横向布局
    //    @"H:|-20-"设置横向布局 距离父视图的左侧边距
    //    @"H:|-20-[view(>=200)]"设置横向布局 距离父视图的左侧边距 设置View横向的尺寸 不低于200
    //    @"H:|-20-[view(>=200)]-20-|"设置横向布局 距离父视图的左侧边距 设置View横向的尺寸 不低于200 设置右侧与父视图之间的间距
        
    //    竖向布局
    //    @"V:|-40-[view(>=200)]-20-|"
        
    //    使用VFL 需要把视图对象(视图)与 他的名字(字符串)绑定起来
        NSDictionary *views = NSDictionaryOfVariableBindings(view);
    //    给self.view 和 view 添加约束
    //    addConstraints 添加约束
    //    NSLayoutConstraint 添加具体约束的类
    //    + (NSArray *)constraintsWithVisualFormat:(NSString *)format options:(NSLayoutFormatOptions)opts metrics:(NSDictionary *)metrics views:(NSDictionary *)views
    //    format :VFL   opts:同意按照某个方向去布局    metrics:绑定参数   views绑定视图的参数
        [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat: @"H:|-20-[view(>=200)]-20-|" options:0 metrics:nil views:views]];
        
        [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:  @"V:|-40-[view(>=200)]-20-|" options:0 metrics:nil views:views]];
        
    }
    //两个视图
    - (void)demo2{
        UIView *view = [[UIView alloc]init];
        //   如果使用autolayout。 translatesAutoresizingMaskIntoConstraints这个属性必须禁用
        view.translatesAutoresizingMaskIntoConstraints = NO;
        view.backgroundColor = [UIColor redColor];
        [self.view addSubview:view];
        
        UIView *view1 = [[UIView alloc]init];
        //   如果使用autolayout。 translatesAutoresizingMaskIntoConstraints这个属性必须禁用
        view1.translatesAutoresizingMaskIntoConstraints = NO;
        view1.backgroundColor = [UIColor yellowColor];
        [self.view addSubview:view1];
        
        NSDictionary *views = NSDictionaryOfVariableBindings(view,view1);
    //    添加红色VIew 横向的约束
        [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[view(>=200)]-20-|" options:0 metrics:nil views:views]];
        [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-40-[view(50)]-10-[view1]" options:0 metrics:nil views:views]];
    
        
    //    添加黄色视图约束
        [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[view1(>=200)]-20-|" options:0 metrics:nil views:views]];
        [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[view]-10-[view1(50)]" options:0 metrics:nil views:views]];
    }
    //优化demo2
    - (void)demo3{
        UIView *view = [[UIView alloc]init];
        //   如果使用autolayout。 translatesAutoresizingMaskIntoConstraints这个属性必须禁用
        view.translatesAutoresizingMaskIntoConstraints = NO;
        view.backgroundColor = [UIColor redColor];
        [self.view addSubview:view];
        
        UIView *view1 = [[UIView alloc]init];
        //   如果使用autolayout。 translatesAutoresizingMaskIntoConstraints这个属性必须禁用
        view1.translatesAutoresizingMaskIntoConstraints = NO;
        view1.backgroundColor = [UIColor yellowColor];
        [self.view addSubview:view1];
        
    //    UIView *view3 = [[UIView alloc]init];
    //    //   如果使用autolayout。 translatesAutoresizingMaskIntoConstraints这个属性必须禁用
    //    view3.translatesAutoresizingMaskIntoConstraints = NO;
    //    view3.backgroundColor = [UIColor yellowColor];
    //    [self.view addSubview:view3];
    
        NSDictionary *views = NSDictionaryOfVariableBindings(view,view1);
        //    添加红色VIew 横向的约束
        [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[view(>=200)]-20-|" options:0 metrics:nil views:views]];
    //    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-40-[view(50)]-10-[view1(50)]" options:0 metrics:nil views:views]];
        
        
        //    添加黄色视图约束
        [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[view1(>=200)]-20-|" options:0 metrics:nil views:views]];
        
    //    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[view3(>=200)]-20-|" options:0 metrics:nil views:views]];
    
    //    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[view]-10-[view1(50)]" options:0 metrics:nil views:views]];
    //    view和view1的高度都是50 让View 的高度就是View的
        [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-40-[view(50)]-10-[view1(view)]" options:0 metrics:nil views:views]];
        
    }
    
    - (void)demo4{
        NSArray *colorList = @[[UIColor redColor],[UIColor yellowColor],[UIColor purpleColor]];
        for (int i = 0; i < 3; i ++) {
            UIView *view = [[UIView alloc]init];
            view.backgroundColor = colorList[i];
            view.tag = 100+i;
            view.translatesAutoresizingMaskIntoConstraints = NO;
            [self.view addSubview:view];
        }
        
        UIView *redView = (UIView *)[self.view viewWithTag:100];
        UIView *yellowView = (UIView *)[self.view viewWithTag:101];
        UIView *purpleView = (UIView *)[self.view viewWithTag:102];
        
        NSDictionary *views = NSDictionaryOfVariableBindings(redView,yellowView,purpleView);
    //    两个视图横向的约束
        NSArray *constraints = @[@"H:|-20-[redView(>=200)]-20-|",@"H:|-20-[yellowView(>=200)]-20-|",@"H:|-20-[purpleView(>=200)]-20-|"];
        
        for (NSString *VFL in constraints) {
            [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:VFL options:0 metrics:nil views:views]];
        }
        
        [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-40-[redView(50)]-10-[yellowView(redView)]-10-[purpleView(redView)]" options:0 metrics:nil views:views]];
    }
    
    - (void)demo5{
        NSArray *colorList = @[[UIColor redColor],[UIColor yellowColor],[UIColor purpleColor]];
        for (int i = 0; i < 3; i ++) {
            UIView *view = [[UIView alloc]init];
            view.backgroundColor = colorList[i];
            view.tag = 100+i;
    /*注意*/view.translatesAutoresizingMaskIntoConstraints = NO;
            [self.view addSubview:view];
        }
        
        UIView *redView = (UIView *)[self.view viewWithTag:100];
        UIView *yellowView = (UIView *)[self.view viewWithTag:101];
        UIView *purpleView = (UIView *)[self.view viewWithTag:102];
        
        NSDictionary *views = NSDictionaryOfVariableBindings(redView,yellowView,purpleView);
        //    两个视图横向的约束
    //    红色视图与黄色视图之间的关系,红色和purple视图之间的关系
        NSArray *HList = @[@"H:|-20-[redView(>=200)]-20-|",@"H:|-20-[yellowView(>=100)]-10-[purpleView(yellowView)]-20-|"];
        
        NSArray *VList = @[@"V:|-40-[redView(50)]-10-[yellowView(redView)]",@"V:|-40-[redView(50)]-10-[purpleView(redView)]"];
        
        for (int i = 0; i < HList.count; i ++){
            
            [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:HList[i] options:0 metrics:nil views:views]];
            
            [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:VList[i] options:0 metrics:nil views:views]];
        }
        
    
       }

     

    转载于:https://www.cnblogs.com/liYongJun0526/p/4874129.html

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,561
精华内容 2,224
关键字:

autolayout