所以我尝试在for循环中添加UILabel,并且没有出现任何标签。这是我的代码:
for (int i = 0; i < [currentList count]; i++) {
label = [[UILabel alloc] initWithFrame:CGRectMake(i * 3, 5.0, 50.0, 50.0)];
[label setText:[currentList objectAtIndex:i]];
[label setBackgroundColor:[UIColor lightGrayColor]];
[label setTextColor:[UIColor blackColor]];
[self.view addSubview:label];
}
那没有做任何事情,所以我尝试在for循环中添加一个NSLog,虽然这只是一个测试,看看for循环是否搞砸了。
更新
另外,如何将每个标签彼此相加?当我运行这个应用程序时,它们都堆积在一起
答案 0 :(得分:0)
我建议你阅读一些关于the view architecture and View Geometry and Coordinate Systems的内容。我不知道你究竟想要完成什么。
假设您希望它们居中并且看起来像列表,您可以尝试:
label = [[UILabel alloc] initWithFrame:CGRectMake((self.view.frame.size.width - labelWidth)/2, 64 + heightBetweenLabels*i, labelWidth, labelHeight)];
并设置 heightBetweenLabels (这将是此值+ 64,更准确地说,它是每个标签的y坐标之间的差异), labelWidth 和< strong> labelHeight 到您想要的值。
编辑:
让我再解释一下,看看:
左上角是原点(x = 0,y = 0)。 x的正值在屏幕上向右移动,而y的正值在屏幕上向下移动。同样,您为标签设置了x和y。这有助于确定标签相对于其超视图的位置。
如果您希望垂直距离更大,或者第一个标签从更远的位置开始,请将 64 替换为更高的值,因为它不受乘法影响。