我正在使用CGRectMake在UITableViewCell中生成一個標籤和一個textField。下面是代碼:CGRectMake in Objective-C
label = [[UILabel alloc] initWithFrame:CGRectMake(20, 10, 0, 20)];
label.backgroundColor = [UIColor redColor];
textField =
[[UITextField alloc] initWithFrame:CGRectMake(0, 10, 0, 20)];
textField.backgroundColor = [UIColor blueColor];
[textField setDelegate:self]; // set the delegate to this object
[textField addTarget:self action:@selector(textFieldDidEndOnExit)
forControlEvents:UIControlEventEditingDidEndOnExit];
[self.contentView addSubview:label]; // add label to the cell
[self.contentView addSubview:textField]; // add textField to cell
首先,我的理解是各參數的定義爲
CGRectMake(x, y, width, height)
我在小區看到的是左側與文本框立即在它的右邊的標籤。兩者之間有一個小空間。
我期望X,Y座標相對於單元格左上角的0,0點,正值向下和向右。
我對我所看到的感到困惑。
我看到標籤位於單元格左側,但它的X值大於textField的X值。 textField從標籤的右側開始。
我不明白爲什麼每個的寬度值設置爲0(零)。
此外,什麼使textField相對於標籤而不是相對於單元座標。
這裏是小區和我看到在它(與背景顏色設置,我可以清楚地看到,其中CGRects被放置)什麼的一個簡單的草圖:
0,0---------------------------------------------------------------------------------
| |
| ---------------- -----------------------------------------------------------------
| | | |
| | label | | textField
| | | |
| ---------------- -----------------------------------------------------------------
| |
------------------------------------------------------------------------------------
我還注意到,寬度每個標籤的內容長度因內容而異。我理解這一點,但我不明白爲什麼textField會四處移動,與標籤保持相同的距離。
順便說一句,「自我」是UITableViewCell的一個子類,如果我沒有說清楚的話。
我想你的意思'[cell.contentView addSubview:標籤]'反而是吧。 – Robin 2011-04-12 04:56:20
爲什麼你說你不明白爲什麼每個人的寬度都設置爲0,如果你是將寬度設置爲0的人?嘗試將其設置爲非零值並更新。 – 2011-04-13 02:11:12