存在预期标识符的问题。我想在Xcode中编码并讨论问题。
UILabel *helloWorldLabel = [UILabel alloc];
if ([helloWorldLabel initWithFrame:[self.view.frame.size.width]] == 320) {
NSLog(@"ddhsd˙∆˚¬dlkjld");
}
//UILabel *new=[[UILabel alloc] initWithFrame:CGRectMake(<#CGFloat x#>, <#CGFloat y#>, <#CGFloat width#>, <#CGFloat height#>)];
helloWorldLabel.text = @"My first project";
[helloWorldLabel setText:@"My first project"];
helloWorldLabel.textColor=[UIColor whiteColor];
[helloWorldLabel setBackgroundColor:[UIColor redColor]];
helloWorldLabel.textAlignment = NSTextAlignmentCenter;
helloWorldLabel.font=[UIFont boldSystemFontOfSize:18];
helloWorldLabel.layer.borderColor=[UIColor greenColor].CGColor;
helloWorldLabel.layer.borderWidth = 2.0f;
[self.view addSubview:helloWorldLabel];
答案 0 :(得分:0)
您没有为if语句设置文本框架,为什么它存在超出我的范围。 添加以下代码:
helloWorldLabel.frame = CGRectMake([X position of top-left corner here], [Y position of top-left corner here], [how wide you want the object to be], [how tall you want the object to be];
例如,您想要一个从屏幕左上方开始的300 x 300盒子
helloWorldLabel.frame = CGRectMake( 0, 0, 300, 300);
希望这会有所帮助
答案 1 :(得分:-3)
这条线对我来说很奇怪:
[helloWorldLabel initWithFrame:[self.view.frame.size.width]] == 320
我想你想要的是:
UILabel * helloWorldLabel = [[UILabel alloc] initWithFrame: self.view.frame];
if (ABS(helloWorldLabel.frame.size.width - 320.0f) < 0.01 )
{
NSLog(@"ddhsd˙∆˚¬dlkjld");
}
如果helloWorlLabel是一个ivar,你可以将UILabel *部分保留下来,如果它是一个属性,那么你应该调用
self.hellowWorldLabel = ...
如果你仍然不清楚这一点,请阅读如何在Objective-C中创建(alloc和init)对象,以及ivars,属性和局部变量之间的区别。
此外,不应使用==来比较浮点数,因为它可能会返回NO,而由于舍入错误而期望为YES。如果输入:
CGFloat x = 1;
CGFloat y = 1;
if (x == y)
{
NSLog(@"Equal");
}
else
{
NSLog(@"Not equal, x = %f and y = %f", x, y);
}
您可能会看到&#34;不等于......&#34;被打印到控制台。这是由于舍入错误: x可以是1.0000000000123和 y可能是1.0000000000012
在那里,你可以获取两个浮点数之差的绝对值,然后检查它是否在某个阈值之下。对于UI /像素相关的东西,较少的tun 0.01通常就足够了,但你的情况可能会有所不同。