iOS開發 UI 從入門到精通 五

2022-04-07 10:02:07 字數 2266 閱讀 5838

近日在做專案的時候,為了快捷適配螢幕採用了storyboard,新增約束以後執行後發現乙個問題(下面將以普通案例展示該問題);在4.7 甚至更大的螢幕下是沒有問題的,如下圖(4.7螢幕):

但是放到更小的3.5英吋就會出現問題,發現下面的按鈕不見了,主要原因是輸入框太多,導致更個螢幕放不下,如下圖(3.5螢幕):

想了下就決定用scrolleview,contentsize可以設定大一些,這樣在其他螢幕上沒有太多的影響,在3.5英吋的螢幕下也可以滑動了;但是在storybord下新增scrollview,新增約束的時候發現他並不會按照你猜想的去執行;經過仔細研究,大致知道了原因;這是由於scrollview本身contentsize、contentinsets等複雜的特性導致,蘋果文件在講autolayout的時候甚至專門拿出一節講;

那麼如何對scrollview進行自動布局?

解決方案:可以給scrollview新增乙個唯一的子檢視(view),大小和scrollview一樣,然後把所有新增到scrollview上面的控制項,都新增在子檢視(view)上面;

步驟如下:

1、首先在我們的controller自帶的view裡面新增乙個scrollview,一般情況下乙個view的邊距確定是通過leading, trailing, top, bottom space確定的,通常我是使用最快捷的方式:在storyboard中右鍵拖動出view與superview的線來選擇;但是如果對uiscrollview使用此方法,使其與superview邊緣重合,即設定邊距為0,會發現怎麼也和superview對齊不了。

究其原因,是因為有乙個預設margin的存在,uiscrollview四周的預設margin是16(xcode6.0);

解決方法是:不要用快捷方式,在storyboard的右下角,點自動布局第二個的pin圖示,在彈出的小視窗中去掉"constrain to margins"的勾選,然後將其上的四個邊距設定為0,如下圖所示:

2、在scrollview上面新增乙個view成為scrollview的子檢視,點開下面設定約束的4個按鈕的第2個,設定約束距離scrollview的距離為(0.0.0.0)如下圖所示:

3、這個時候會發現報錯了,先不用管它,咱們繼續往下走;

4、點開下面設定約束的4個按鈕的第乙個,選擇 horizontal center in container, 並打上對勾,(如果想要左右滑動就選擇 vertical center in container,同時實現左右上下則全不選);

5、再次開啟下面設定約束的4個按鈕的第2個選擇height 設定你想要的大小(假如是700);(如果想要左右滑動就選擇 width, 同時實現左右上下就全部設定)(這個高度是以後執行後scroller的contentsize);

6、設定完成之後你會發現錯誤不見了,只有乙個黃色的警告,這是由於frame沒有更新導致的,我們來更新下frame;

7、接下來就可以在這個scrollview的子檢視view上面來新增控制項了,這裡要記住設定約束的時候是相對于父試圖view的;

8、執行程式,發現在3.5英吋螢幕已經可以滑動了,,而在4.7螢幕還是和原來一樣  如下圖:

iOS開發從入門到精通

uigesture手勢擴充套件,平移,滑動,長按 長按函式 void longpressact uilongpressgesturerecognizer longpress 當手指離開螢幕時,結束狀態 else if longpress.state uigesturerecognizerstatee...

iOS開發從入門到精通

xib使用介紹 首先我們刪除一些不需要的東西 然後我們建立乙個新的檢視控制器 紅色箭頭also create xib file要勾選上 這個時候,我們可以看到有三個檔案建立成功了,其中有乙個rootcontroller.xib檔案,在這個裡面就看到了乙個像手機一樣的檢視,我們可以在右邊進行拖拽一些控...

Nginx開發從入門到精通

更新歷史 日期描述 2012 03 01 建立目錄大綱 2012 03 28 增加了樣章 2012 05 25 更新樣章 2012 06 08 增加第5章 2012 06 11 增加第4章 2012 06 26 增加第6章 event module 2012 06 27 更新第5章部分內容 2012...