2010-09-25 65 views
1

夥計們,我是iOS的新手。 我需要創建動態佈局,因爲GUI將根據數據生成。 我查了UIView的引用,看來標準的方式來添加子視圖是這樣的:像Java for iOS中的佈局管理器一樣嗎?

CGRect rect = CGRectMake(0, 0, width, height); 
UILabel *label = [[UILabel alloc] initWithFrame: rect]; 
[someView addSubView: label]; 

但是,也許我不能肯定的是,寬度和高度。在Java中,容器使用佈局管理器根據一些規則自動處理寬度和高度。在iOS中,我可以在Java中使用類似佈局管理器的東西嗎?

謝謝。 任何線索都可以。

回答

1

您可以在iOS中執行此操作,但它與Java佈局不是一對一的。瞭解什麼是可能的,在Interface Builder中使用Size Inspector。任何在那裏完成的事情,例如允許物品水平增長或與頂部保持相同的距離,都可以通過編程完成。如果需要進一步定製,可以覆蓋視圖或控制器中的事件掛鉤,例如UIView的-layoutSubviews方法。

+0

感謝彼得,我會看看有什麼我可以做-layoutSubviews。 – icespace 2010-09-25 14:28:29

0

的iOS 9提供UIStackView類這在本質上是一個佈局管理器:

的UIStackView類提供用於佈置 的觀點在任一列或一行的集合的簡化的界面。堆疊視圖讓你 利用自動佈局的能力,創建一個可以 動態適應設備的方向,屏幕尺寸,並在可用空間的任何 改變用戶界面。堆棧視圖管理layoutSubviews屬性中所有視圖的佈局。這些視圖是 ,它們沿着堆棧視圖的軸排列,這取決於它們在 arrangeSubviews陣列中的順序。確切的佈局取決於視圖的軸,分佈,對齊,間距和其他屬性。

UIStackView

需要注意的是,如果你支持的iOS 8這仍然是目前非常實際是不適用的。

iOS version statistics