我創建了10x10網格(GridView)的視圖(CellView)。網格視圖的編程創建
我可以爲單個尺寸的屏幕創建此功能,但迄今爲止無法創建適用於iPhone上所有3種當前屏幕尺寸的解決方案。
gridView是在自動佈局中創建的,並且有一些約束:寬度和高度相等,距離水平邊8px。
我有兩種方法:
1)當調用的init()創建我基地是在上海華盈的大小框的CellView。
let cellSize = gridView.bounds.width/15 let cellRect = CGRect(origin: CGPoint(x: x, y: y), size: CGSize(width: cellSize, height: cellSize))
這種做法似乎並沒有工作,細胞並不都適合網格。根據除數的變化,它們要麼太大,要麼太小。
2.)我的第二種方法是使用自動佈局的細胞。
在創建cellView並將其作爲子視圖添加到gridView後,我添加了2個約束。
var width = NSLayoutConstraint(item: self, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.Equal, toItem: self.superview, attribute: NSLayoutAttribute.Width, multiplier: 0.0666667, // 1/15 constant: 0)
var height = NSLayoutConstraint(item: self, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: self.superview, attribute: NSLayoutAttribute.Height, multiplier: 0.0666667, // 1/15 constant: 0)
不幸的是,這導致cellViews沒有出現在屏幕上。檢查後是由於寬度/高度爲0;但它們在運行時的約束中還具有低於0值的附加寬度和高度> 0。
我不確定哪種方法最好。我以編程方式創建了cellView,並且需要一種適用於所有設備屏幕尺寸的方法。
非常感謝更好的解決方案或錯誤的想法在我目前的方法。
太棒了!非常感謝。關鍵是將我的代碼移動到layoutSubViews。 :) – codycoats 2014-12-05 18:11:49