iOS 如何使用facebook開源的YogaKit(三)

使用YogaKit來做一個(gè)九宮格爆土,看看用它是實(shí)現(xiàn)有多簡單椭懊。
代碼:

//九宮格
- (void)scratchableLatexView {
    NSArray *arr = [NSArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5",@"6",@"7", nil];
    
    UIView *templateView = [[UIView alloc] initWithFrame:CGRectZero];
    templateView.backgroundColor = [UIColor greenColor];
    [templateView configureLayoutWithBlock:^(YGLayout * layout) {
        layout.isEnabled = YES;
        layout.flexDirection = YGFlexDirectionRow;
        layout.height = YGPointValue(40*(arr.count/4));
        layout.width = YGPointValue(UI_SCREEN_WIDTH);
        layout.flexWrap = YGWrapWrap;
    }];
    [self.baseClassView addSubview:templateView];
    
    for (NSString *str in arr) {
        UIView *view = [[UIView alloc] initWithFrame:CGRectZero];
        view.backgroundColor = randomColor;
        [view configureLayoutWithBlock:^(YGLayout * layout) {
            layout.isEnabled = YES;
            layout.width = YGPointValue(UI_SCREEN_WIDTH/4);
            layout.height = YGPointValue(40);
        }];
        [templateView addSubview:view];
        
        UILabel *lbl = [[UILabel alloc] initWithFrame:CGRectZero];
        lbl.text = str;
        lbl.textAlignment = NSTextAlignmentCenter;
        [lbl configureLayoutWithBlock:^(YGLayout * layout) {
            layout.isEnabled = YES;
            layout.flexGrow = 1.0;
            layout.padding = YGPointValue(0);
        }];
        [view addSubview:lbl];
    }
    [self.baseClassView.yoga applyLayoutPreservingOrigin:NO];
}

效果:


image.png

代碼中的計(jì)算量是不是非常少,都是一些布局的東西步势。這里代碼中最核心代碼就是能換行l(wèi)ayout.flexWrap = YGWrapWrap氧猬,所有的代碼都是圍繞它而轉(zhuǎn)動(dòng)的。

下面就是Flexbox對flex-wrap屬性的介紹坏瘩。
1.2 flex-wrap屬性

默認(rèn)情況下 Flex 跟 LinearLayout 一樣盅抚,都是不帶換行排列的,但是 flex-wrap 屬性可以支持換行排列倔矾。這個(gè)也比 LinearLayout屌了許多妄均。它有三個(gè)值:nowrap柱锹、wrap、wrap-reverse

  • nowrap (默認(rèn)值):不換行


    nowrap
  • wrap:換行丰包,第一行在上方禁熏。


    wrap
  • wrap-reverse:換行,第一行在下方邑彪。


    wrap-reverse
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末瞧毙,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子寄症,更是在濱河造成了極大的恐慌宙彪,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瘸爽,死亡現(xiàn)場離奇詭異您访,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)剪决,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進(jìn)店門灵汪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人柑潦,你說我怎么就攤上這事享言。” “怎么了渗鬼?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵览露,是天一觀的道長。 經(jīng)常有香客問我譬胎,道長差牛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任堰乔,我火速辦了婚禮偏化,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘镐侯。我一直安慰自己侦讨,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布苟翻。 她就那樣靜靜地躺著韵卤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪崇猫。 梳的紋絲不亂的頭發(fā)上沈条,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天,我揣著相機(jī)與錄音诅炉,去河邊找鬼拍鲤。 笑死贴谎,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的季稳。 我是一名探鬼主播擅这,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼景鼠!你這毒婦竟也來了仲翎?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤铛漓,失蹤者是張志新(化名)和其女友劉穎溯香,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體浓恶,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡玫坛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了包晰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片湿镀。...
    茶點(diǎn)故事閱讀 40,030評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖伐憾,靈堂內(nèi)的尸體忽然破棺而出勉痴,到底是詐尸還是另有隱情,我是刑警寧澤树肃,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布蒸矛,位于F島的核電站,受9級特大地震影響胸嘴,放射性物質(zhì)發(fā)生泄漏雏掠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一劣像、第九天 我趴在偏房一處隱蔽的房頂上張望磁玉。 院中可真熱鬧,春花似錦驾讲、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至颅停,卻和暖如春谓晌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背癞揉。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工纸肉, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留溺欧,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓柏肪,卻偏偏與公主長得像姐刁,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子烦味,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容