作者googled (15357)
看板MacDev
标题[问题] 请问UI介面的相关问题
时间Sun Sep 6 18:34:40 2015
各位高手好,想请教关於UI介面的问题
假设我有一个viewA在StroyBoard设好相关的AutoLayout之後
正常来说viewA的frame会随着不同设备的萤幕大小变化
而我这个viewA上还会有个viewB
在上述的动作下我有两个疑问想请教
1.
假设要新增的viewB并不是动态内容,可以直接在StoryBoard上拉出相关介面
而viewB必须在viewA的正中央,且viewB的大小最大不能超过320*240,缩小也必须等比例
也就是说,
如果设备萤幕太小,例如使用者使用iPhone4,
那麽viewB必须要依据320*240等比例缩小,缩小到不超出viewA为止
如果设备萤幕太大,例如使用者使用iPad
那麽viewB最大就只能到320*240
小弟只知道等比例可以使用aspect ratio constraint达到效果
但不晓得能不能设置view的大小限制,还请各位高手指教
本来是想说不然用程式码的方式来设定viewB的大小跟位置,
但这样却出现第二个问题
2.
小弟将viewA及viewB利用IBOutlet的方式设置在viewController里面
但在viewController的viewDidLoad函式中,viewA的frame总是错误的
造成我没办法在viewDidLoad中决定viewB的大小,
必须在viewDidAppear中viewA的frame才是真正的大小
但viewDidAppear会在viewController每次出现的时候都会被呼叫,
这样viewB的排版会不断的被执行
如果利用if来判断排版过了没,个人又觉得蠢蠢的
想请问是否有更好的方法可以达到同样的效果
感谢各位
题外话@@
想请问一下各位高手用程式码排版介面的时候
都是怎麽排的,小弟用程式码排版的时候都是直接指定相关的x, y座标
而width, height则是依据superView的大小来算
如果要排三个横向的label,小弟大致上会这样做
var x=0
var y=0
for var index = 0 ; index != 3 ; index++{
label[index].frame(x, y, width, height)
x += width
view.addSubview( label[index] )
}
不知道这样的做法是不是不太好@@
谢谢各位
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.174.119.198
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MacDev/M.1441535683.A.4F6.html
1F:推 mraaa: Auto layout可以设定min or max的constrain 09/07 02:55
2F:推 howdiun: 用了autolayout之後程式也要用autolayout啊 09/07 09:28
3F:→ googled: 原来如此,受教了,感谢各位大大 09/12 23:38