这是我目前的代码,
CGRect screenRect = [[UIScreen mainScreen] bounds];
CGRect *FullViewRect = NULL;
if (screenRect.size.height == 568.0f) // iPhone 5
{CGRect FullViewRect = CGRectMake(0, 0, 320, 568);}
else
{CGRect FullViewRect = CGRectMake(0, 0, 320, 480);}
UILabel *Count3 = [[UILabel alloc] initWithFrame: FullViewRect];
Count3.backgroundColor = [UIColor blueColor];
[self.view addSubview:Count3];
但是Count3不可见? 没有给出错误,但FullViewRect没有价值。
答案 0 :(得分:5)
我想知道这是如何编译的。它不应该。
UILabel *Count3 = [[UILabel alloc] initWithFrame: FullViewRect];
这是错误的,因为FullViewRect
是CGRect *
,但该方法需要CGRect
。 (为什么你会假设而不是阅读文档?)
此外,您正在if
语句的分支内重新声明该变量。您的代码需要(变量名称固定为以小写字母开头):
CGRect fullViewRect;
if (screenRect.size.height == 568.0f) {
fullViewRect = CGRectMake(0, 0, 320, 568);
} else {
fullViewRect = CGRectMake(0, 0, 320, 480);
}
但是,这是一个过于基本的东西。如果你不理解这一点,你应该学习C并且不尝试制作iOS应用程序。
还有一个错误:
if (screenRect.size.height == 568.0f)
从不 尝试比较像这样的浮点数,因为它们并不准确。请改用这样的东西:
if (screenRect.size.height > 500.0f)
或类似。
答案 1 :(得分:2)
失败的原因是您的if
和else
语句都声明了 new FullViewRect
,它隐藏了您实际想要更改的内容。将您的代码修改为:
CGRect screenRect = [[UIScreen mainScreen] bounds];
CGRect FullViewRect;
if (screenRect.size.height == 568.0f) // iPhone 5
{FullViewRect = CGRectMake(0, 0, 320, 568);}
else
{FullViewRect = CGRectMake(0, 0, 320, 480);}
UILabel *Count3 = [[UILabel alloc] initWithFrame: FullViewRect];
Count3.backgroundColor = [UIColor blueColor];
[self.view addSubview:Count3];