我正在尝试根据界面方向更改时的屏幕尺寸调整某些元素的大小。我已经在不同的地方阅读(包括这里的一些答案),获得屏幕边界的方法是使用[[UIScreen] mainScreen]边界]。所以我添加了这段代码来看看它的行为:
- (void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
NSLog(@"view dimensions: (%@, %@)", [[UIScreen mainScreen] bounds].size.width, [[UIScreen mainScreen] bounds].size.height);
}
但是在运行它时,只要我旋转屏幕,我就会收到一条EXC_BAD_ACCESS消息。有没有关于willRotateToInterfaceOrientation函数的范围,它不允许我调用屏幕边界?如果是这样,我该怎么做呢?
答案 0 :(得分:4)
%@ format说明符要求format参数为objective-c对象,而您提供的是plain float。要打印浮点数,请使用%f
说明符:
NSLog(@"view dimensions: (%f, %f)", [[UIScreen mainScreen] bounds].size.width, [[UIScreen mainScreen] bounds].size.height);