だから私は、グリッド/テーブルが私のアプリに表示させるためにしようとしている、とこれを実行するために私がUILabelsの配列を作成した。その後、UILabels
var rows = 2
var columns = 2
var grid = [[UILabel]](count: rows, repeatedValue: [UILabel](count: columns, repeatedValue: UILabel()))
IそれぞれのUILabelを作成しました:
for i in 0 ..< grid.count
{
for j in 0 ..< grid[0].count
{
grid[i][j].frame = CGRectMake(x + CGFloat(j*Int(gridSpace)), y + CGFloat(i*Int(gridSpace)), gridSpace, gridSpace)
grid[i][j].backgroundColor = UIColor.redColor()
grid[i][j].hidden = false
grid[i][j].textColor = UIColor.whiteColor()
grid[i][j].textAlignment = NSTextAlignment.Center
grid[i][j].text = "label: [\(i)][\(j)]"
self.view.addSubview(grid[i][j])
print("grid[\(i)][\(j)]X = \(grid[i][j].frame.origin.x) grid[\(i)][\(j)]Y = \(grid[i][j].frame.origin.y)")
}
}
実際にはかなり面白いです。コードはコンパイルされ、すべてが表示されますが、ラベルの1つだけが表示されます。ラベルの寸法とすべてが完璧ですが、そのうちの1つだけが表示されます。
表示されるラベルは、常にgrid [rows-1] [columns-1]ラベルです。しかし、グリッド配列にあるはずの残りのラベルのx座標とy座標を印刷すると、すべての座標がビューコントローラー上にあるはずです。ラベルが表示されないだけです。私は
for i in 0 ..< grid.count-1
{
for j in 0 ..< grid[0].count-1
{
にループに変更するとき、まだ最後のラベル(グリッド[行-1] [列1]ラベル)が現れ、まだそれらがあるべき場所を正確座標です。もう一つ奇妙なことは、私は
if(j != grid[0].count-1)
{
grid[i][j].text = "test label: [\(i)][\(j)]"
}
にライン
grid[i][j].text = "test label: [\(i)][\(j)]"
を変更した場合、次に現れるラベルはまだグリッドの座標[行-1] [列-1]を持っていますが、持っているということですグリッドのラベルテキスト[行-1] [列-2]
誰かが私の問題を解決したり、何が起こっているのか説明できますか?
で
を説明するためのありがとう! – TheNumberDevil