看板 MacDev 關於我們 聯絡資訊
是這樣的 小弟目前在學習autolayout 我有四個view 每個view的關係式距離10 如果我把第二個view刪掉 第三個view之後會因為找不到關係連結而跑到畫面(0,0)的位置 又或者是第三個view會跟第一個view距離20 我要怎麼繼續讓第三個view跟第一個view距離10 示意圖 http://imgur.com/DX8uo7F 小弟目前做法是再重新敘述第三個view跟第一個view的關係式 但這樣下去不就寫到死了嗎~~~~~~ 請版上各位先進幫小弟解惑Q_Q ******************************************************** 是這樣的 http://youtu.be/z5VeuixzN_U
在以前的寫法 只要將rect.origin.x++跟y++即可 那如果以autolayout要達到這樣的效果 會很複雜嗎???? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.150.97 ※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1440038570.A.DD6.html
Blueshiva: 你這幾個view是動態增加減少的嗎? 08/20 10:51
是的 再按下remove之後 第二個view被刪除 之後的view要補上去 類似android的 線性layout
darktt: 這個就算時手動layout也是要重算view3的位置資訊的 08/20 11:43
Blueshiva: 我的意思是,這些view的個數是不定的,還是固定就只有 08/20 12:23
Blueshiva: 四個,然後有可能會移掉第二個這樣? 08/20 12:24
是不固定的
Blueshiva: 如果所有都不固定的話,那就每次移除新增就全部重設吧 08/20 13:28
謝謝大大 看來用手刻autolayout的都是神人了
howdiun: 不要把他想得太難,其實就是一個reloadView而已 08/20 15:00
tentenlee: 這東西幹嘛用autolayout.. 我會用TABLEview就是了 08/20 16:36
yeah200077: 第三個view新增priority較低的constraint對上第一個vi 08/21 00:25
yeah200077: ew 08/21 00:25
yeah200077: View太多就建議用手寫 08/21 00:26
感謝大大建議
howdiun: 把左邊跟上面2個constraint設為property 08/21 10:39
howdiun: 要變動的時候移除這2個property對應到上一個 08/21 10:39
howdiun: romove n 之後再 reload n 08/21 10:41
howdiun: 刪掉第1個,原本第3個跑到第2個,只要再設定2與1關係即可 08/21 10:44
howdiun: 2 08/21 10:44
Blueshiva: 問題是原po的view個數不定,也不一定是移掉2,這樣的話 08/21 11:48
Blueshiva: 理論上應該是會有個array存所有的view,所以才說,要移 08/21 11:48
Blueshiva: 掉Nth,就在array中移掉Nth的object,然後剩下的重新跑 08/21 11:49
Blueshiva: 一次constraint的設定就好,這樣反而最方便 08/21 11:50
啊啊啊啊啊啊 搞不清楚啊~~~ ※ 編輯: s001582000 (125.227.150.97), 08/21/2015 17:17:52
mraaa: 簡單的說,把constrain設Priority,這樣View2刪了,就會去 08/22 03:01
mraaa: 找第二順位的Constrain 08/22 03:01
howdiun: remove n之後只要reload n,因為除了n以外的constraint 08/24 12:24
howdiun: 都不會變 08/24 12:24
howdiun: reload n的意思是重新設定n與n-1的constraint 08/24 12:25
howdiun: 若n=0則設定n與superview的關係 08/24 12:26