IOS margin-bottom失效問題

Rocer發表於2018-12-21

問題

webAPP中內嵌的H5頁面設定margin-bottom,在模擬器及安卓機中的展示效果都與預想的一樣。而在iPhone中無論巢狀多少層margin-bottom,均會失效。

原因

參考資料

從IOS8開始,UIView的屬性var layoutMargins:UIEdgeInsets指定該View的subview同其edge的間距。AutoLayout使用margins來放置內容。其預設值為8pt。

如果一個View是ViewController的rootview,系統會自動設定和管理margins,top和bottom。margins為0pt。所以自己設定的margin-bottom會失效。

解決方案

針對IOS端margin-bottom失效問題目前有兩種解決方案:

div撐開

用設定了高度的div撐開底部,達到與margin撐開的相同的效果。

改用padding-bottom

使用padding-bottom撐開底部,大多數情況下可以滿足安卓端和IOS端的展示需求。

本人才疏學淺,以上僅為個人見解,歡迎批評指正討論~~

相關文章