国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

(9/18)重學Standford_iOS7開發_動畫、自動布局_課程筆記

2019-11-14 18:39:41
字體:
來源:轉載
供稿:網友

最近開始實習,沒多少時間更新了=_=

第九課:

  1、上節課demo:Dropit完整實現

    https://github.com/NSLogMeng/Stanford_iOS7_Study/commit/cfc24c2c4300185d972cf151872d313414a48d32

  2、Autolayout

    比較簡單請參照課件截圖https://github.com/NSLogMeng/Stanford_iOS7_Study/blob/master/Slides/Lecture%209%20Slides.pdf

    課程實現方法為在storyboard中可視化實現,本文再介紹兩種方法:

    ①NSLayoutConstraint

+(instancetype)constraintWithItem:(id)view1                                       attribute:(NSLayoutAttribute)attr1                                     relatedBy:(NSLayoutRelation)                             relation toItem:(id)view2                                       attribute:(NSLayoutAttribute)attr2                                      multiplier:(CGFloat)multiplier constant:(CGFloat)c;//約束:item1.attribute =(>=,<=related) multiplier * item2.attribute + constant//使用UIView添加約束- (void)addConstraint:(NSLayoutConstraint *)constraint

    ②Visual Format Language(VFL)

      官方文檔很簡單易懂

                  語法:

含義語法含義語法
水平方向H:關系>=,<=,==
垂直方向V:空間,間隙-
Views[view]優先級@value
superView|  

 

      舉例:

    

    代碼實現舉例:

- (void)viewDidLoad {    [super viewDidLoad];    // Do any additional setup after loading the view, typically from a nib.    UIButton *button1 = [[UIButton alloc] init];    button1.backgroundColor = [self randomColor];    [button1 setTitle:@"button1" forState:UIControlStateNormal];    button1.translatesAutoresizingMaskIntoConstraints = NO;//手動創建的代碼使用VFL必須更改此屬性    button1.layer.cornerRadius = 4.0f;    [self.view addSubview:button1];        [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-[button1]-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(button1)]];    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-20-[button1(width)]" options:0 metrics:@{@"width" : @30} views:NSDictionaryOfVariableBindings(button1)]];        UIButton *button2 = [[UIButton alloc] init];    button2.backgroundColor = [self randomColor];    [button2 setTitle:@"button2" forState:UIControlStateNormal];    button2.translatesAutoresizingMaskIntoConstraints = NO;//手動創建的代碼使用VFL必須更改此屬性    button2.layer.cornerRadius = 4.0f;    [self.view addSubview:button2];        [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-[button2]-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(button2)]];    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[button1]-44-[button2(30)]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(button1,button2)]];        UITabBar *tabBar = [[UITabBar alloc] init];    tabBar.barTintColor = [UIColor colorWithRed:102/255.0f green:204/255.0f blue:255/255.0f alpha:1.0f];    tabBar.translatesAutoresizingMaskIntoConstraints = NO;//手動創建的代碼使用VFL必須更改此屬性        UITabBarItem *item1 = [[UITabBarItem alloc] init];    [item1 setTitle:@"item1"];        UITabBarItem *item2 = [[UITabBarItem alloc] init];    [item2 setTitle:@"item2"];        UITabBarItem *item3 = [[UITabBarItem alloc] init];    [item3 setTitle:@"item3"];        tabBar.items = @[item1,item2,item3];        [self.view addSubview:tabBar];    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[tabBar]|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(tabBar)]];    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[tabBar(45)]|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(tabBar)]];        [button1 addTarget:self action:@selector(touchButton1) forControlEvents:UIControlEventTouchDown];    }

         注意:①代碼創建的view要加 button1.translatesAutoresizingMaskIntoConstraints = NO;才能生效

            ②metrics存儲VFL中可變量的值(字典),可以參考button1的約束

            ③views參數對應VFL中View的值(通過NSDictionaryOfVariableBindings(...)實現)

 

  3、作業

    還沒做=_=,后面補。

 

課程視頻地址:網易公開課:http://open.163.com/movie/2014/1/B/P/M9H7S9F1H_M9H80K2BP.html

       或者iTunes U搜索standford課程


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 习水县| 达拉特旗| 绵阳市| 神池县| 库车县| 元氏县| 明溪县| 开阳县| 永新县| 旺苍县| 怀仁县| 巴中市| 绥阳县| 托克逊县| 丹寨县| 蓬溪县| 开阳县| 仙游县| 望城县| 富裕县| 临清市| 青龙| 临桂县| 新民市| 松江区| 两当县| 乌兰浩特市| 西平县| 微山县| 邯郸市| 遵义县| 贵德县| 姜堰市| 张北县| 光泽县| 乌什县| 新竹市| 威信县| 云和县| 家居| 莲花县|