使用Masonry過程中設(shè)置ScrollView的滑動(dòng)范圍

很多時(shí)候,我們需要使用ScrollView來作為底層View,來使整個(gè)界面能夠滑動(dòng)顯示.使用Frame來設(shè)置各控件的坐標(biāo)時(shí),很簡(jiǎn)單,直接用ScrollView的ContentSize屬性就可以設(shè)置其滑動(dòng)范圍,但是使用Masonry的時(shí)候 ,這個(gè)方法就不行了,此時(shí),我們需要給ScrollView上加一層containerView,將各個(gè)控件都加在containerView上,然后根據(jù)最后一個(gè)控件的的位置來設(shè)置containerView的底部約束就可以了.廢話不多說,貼一下代碼:

1.先創(chuàng)建一個(gè)ScrollView

self.baseView = [[UIScrollView alloc] init];
self.baseView.backgroundColor = [UIColor clearColor];
self.baseView.delegate = self;
self.baseView.showsVerticalScrollIndicator = NO;
[self.view addSubview:self.baseView];
[self.baseView mas_makeConstraints:^(MASConstraintMaker *make) {
    make.edges.mas_equalTo(self.view);
}];

2.在ScrollView上添加一個(gè)containerView

UIView *containerView = [UIView new];
[self.baseView addSubview:containerView];
[containerView mas_makeConstraints:^(MASConstraintMaker *make) {
    make.edges.mas_equalTo(self.baseView);
    make.width.mas_equalTo(self.baseView);
}];

3.將需要展示的控件添加在containerView上(此處只是示例代碼)

UIView *segementView1 = [[UIView alloc] init];
segementView1.backgroundColor = COLOR_BACKVIEW_GRAY;
[containerView addSubview:segementView1];
[segementView1 mas_makeConstraints:^(MASConstraintMaker *make) {
    make.top.mas_equalTo(containerView.mas_top).offset(topHeight);
    make.left.mas_equalTo(containerView.mas_left).offset(0);
    make.right.mas_equalTo(containerView.mas_right).offset(0);
    make.height.mas_equalTo(8);
}];

UILabel *paytimeTipLab = [[UILabel alloc] init];
paytimeTipLab.textColor = COLOR_FONT_BLACK;
paytimeTipLab.text = @"支付剩余時(shí)間";
paytimeTipLab.textAlignment = NSTextAlignmentCenter;
paytimeTipLab.font = FONT_12;
[containerView addSubview:paytimeTipLab];
[paytimeTipLab mas_makeConstraints:^(MASConstraintMaker *make) {
    make.top.mas_equalTo(segementView1.mas_bottom).offset(34);
    make.left.mas_equalTo(containerView.mas_left).offset(0);
    make.right.mas_equalTo(containerView.mas_right).offset(0);
    make.height.mas_equalTo(20);
}];

UILabel *paytimeLab = [[UILabel alloc] init];
paytimeLab.textAlignment = NSTextAlignmentCenter;
paytimeLab.textColor = COLOR_FONT_GRAY;
paytimeLab.font = FONT_20;
paytimeLab.text = format_time;
[containerView addSubview:paytimeLab];
self.paytimeLab = paytimeLab;
[paytimeLab mas_makeConstraints:^(MASConstraintMaker *make) {
    make.top.mas_equalTo(paytimeTipLab.mas_bottom).offset(20);
    make.left.mas_equalTo(containerView.mas_left).offset(0);
    make.right.mas_equalTo(containerView.mas_right).offset(0);
    make.height.mas_equalTo(30);
}];

UIView *segementView2 = [[UIView alloc] init];
segementView2.backgroundColor = COLOR_BACKVIEW_GRAY;
[containerView addSubview:segementView2];
[segementView2 mas_makeConstraints:^(MASConstraintMaker *make) {
    make.top.mas_equalTo(paytimeLab.mas_bottom).offset(34);
    make.left.mas_equalTo(containerView.mas_left).offset(0);
    make.right.mas_equalTo(containerView.mas_right).offset(0);
    make.height.mas_equalTo(8);
}];

4.最后一步,設(shè)置一下containerView的底部約束即可(這里放最后一個(gè)控件的底部)

[containerView mas_makeConstraints:^(MASConstraintMaker *make) {
    make.bottom.mas_equalTo(segementView2.mas_bottom).offset(200);
}];

好了,這樣就可以確定ScrollView的滑動(dòng)范圍了,希望可以給初始使用Masonry的同學(xué)一些幫助.測(cè)試的時(shí)候可以在containerView上多添加一些控件,這樣會(huì)效果會(huì)更直觀.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,828評(píng)論 4 61
  • 作為一個(gè)典型的中國(guó)人,我是不相上帝的,為什么典型的中國(guó)人是不相信上帝的呢? 在中國(guó)的傳統(tǒng)文化中,只有那些做為中華民...
    陳瀟絲閱讀 277評(píng)論 0 0
  • 謹(jǐn)以此文 紀(jì)念曾經(jīng)的校園時(shí)光 紀(jì)念我們逝去的青春 那段呼嘯著青春的圍墻 斑駁的記憶被歲月拉長(zhǎng) 醉在花陰里的笑顏 是...
    爺少寒閱讀 291評(píng)論 0 1
  • 佳 好多話想說,可又不知從何說起。 記得第一次見面,在火車上,本想制造點(diǎn)驚喜,可還是有點(diǎn)尷尬。 你說要吃三只...
    云邊小孩閱讀 217評(píng)論 0 0
  • 我們每個(gè)人都會(huì)有情緒低落的時(shí)候,當(dāng)?shù)吐涞那榫w像潮水一樣襲來,真的是擋也擋不住,這可腫么破呢?每當(dāng)這個(gè)時(shí)候,作為患者...
    手帳研究室閱讀 10,977評(píng)論 28 352

友情鏈接更多精彩內(nèi)容