如果你想在故事板中做到这一点,你需要学习使用AutoLayout。如果你不想学习它,你可以通过编程的方式(不推荐)使用一些条件对你的尺寸进行硬编码,下面是怎么做。
首先,添加的宏代码:
#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
#define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
#define IS_RETINA ([[UIScreen mainScreen] scale] >= 2.0)
#define SCREEN_WIDTH ([[UIScreen mainScreen] bounds].size.width)
#define SCREEN_HEIGHT ([[UIScreen mainScreen] bounds].size.height)
#define SCREEN_MAX_LENGTH (MAX(SCREEN_WIDTH, SCREEN_HEIGHT))
#define SCREEN_MIN_LENGTH (MIN(SCREEN_WIDTH, SCREEN_HEIGHT))
#define IS_IPHONE_4_OR_LESS (IS_IPHONE && SCREEN_MAX_LENGTH < 568.0)
#define IS_IPHONE_5 (IS_IPHONE && SCREEN_MAX_LENGTH == 568.0)
#define IS_IPHONE_6 (IS_IPHONE && SCREEN_MAX_LENGTH == 667.0)
#define IS_IPHONE_6P (IS_IPHONE && SCREEN_MAX_LENGTH == 736.0)
然后,使用这样的:
if (IS_IPHONE_5 || IS_IPHONE_4_OR_LESS) {
//size is 292
} else if (IS_IPHONE_6) {
//size is 347
} else if (IS_IPHONE_6P) {
//size is 386
}
希望这有助于。
我实际上已经有了自动布局设置,而且我在想,不是硬编码imageView高度,只是使用像'heightForRowAtIndex'内部提示的条件。你怎么看? – Prgmmr
事实上,如果你已经正确地设置了自动布局,使用条件设置'heightForRowAtIndex'应该可以正常工作:) – AnthoPak
我将如何添加if语句。无法弄清楚我应该怎么做。因为从技术上讲,if语句会达到非空函数 – Prgmmr