我正在使用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