iOS VFL為scrollview新增約束

2021-07-24 07:05:19 字數 1975 閱讀 6821

- (void)createscrollview ;

//橫向約束,距離螢幕左右各方8個畫素的間距

nsarray * hscroll = [nslayoutconstraint constraintswithvisualformat:@"h:|-8-[scroll]-8-|" options:0 metrics:nil views:views];

//縱向約束,使他距離螢幕上下方都是0畫素

nsarray * vscroll = [nslayoutconstraint constraintswithvisualformat:@"v:|[scroll]|" options:0 metrics:nil views:views];

[self

.view addconstraints:hscroll];

[self

.view addconstraints:vscroll];

//為contentview新增約束

contentview.translatesautoresizingmaskintoconstraints = no;

nsdictionary * contentviews = @;

//新增橫向約束

nsarray * hcontent = [nslayoutconstraint constraintswithvisualformat:@"h:|[content]|" options:0 metrics:nil views:contentviews];

//新增縱向約束

nsarray * vcontent = [nslayoutconstraint constraintswithvisualformat:@"v:|[content]|" options:0 metrics:nil views:contentviews];

//普通的檢視到此結束了,但是scrollview需要新增下面兩個約束

//設定contentview的寬度

nslayoutconstraint * widthcontent = [nslayoutconstraint constraintwithitem:contentview attribute:nslayoutattributewidth relatedby:nslayoutrelationequal toitem:self

.scrollview attribute:nslayoutattributewidth multiplier:1.0 constant:0];//這句話的意思是:新增乙個明確的約束,contentview.width(nslayoutattributewidth) = scrollview.width(nslayoutattributewidth) * 1.0(multiplier) + 0(constant)

//設定contentview的高度

nslayoutconstraint * heightcontent = [nslayoutconstraint constraintwithitem:contentview attribute:nslayoutattributeheight relatedby:nslayoutrelationequal toitem:self

.scrollview attribute:nslayoutattributeheight multiplier:1.0 constant:0];

[self

.scrollview addconstraints:hcontent];

[self

.scrollview addconstraints:vcontent];

[self

.scrollview addconstraint:widthcontent];

[self

.scrollview addconstraint:heightcontent];

//用約束 scrollview的contentsize是不需要設定的

= contentview.frame.size;

}

解決ListView巢狀ScrollView的問題

當scrollview裡面包含listview時,listview只能顯示第一行資料.所以需要解決的也就是高度問題了 需要自定義,重寫onmeasure方法,改變測量的高度就行了class mylistview extends listview 使得listview適應scrollview的效果 o...

IOS VFL螢幕自適應

1 void fun1,這個詞典應當包含需要自動布局的父檢視和所有的子檢視,24 25 nsarray arr1 nslayoutconstraint constraintswithvisualformat v 20 view options 0 metrics nil views nsdictio...

iOS VFL語言的簡單實用

import viewcontroller.h inte ce viewcontroller end implementation viewcontroller 在介面上有乙個藍色的 view,它距離父控制項的上左右 各是20,藍色 view 的高是100 在藍色 view 的下方有乙個紅色的 vi...