所以目前我有一个UITableView单元格,我有一些按钮,标签和UIImageView,高度设置为400,这是恒定的。
唯一的问题是,在iPhone 4和5 / SE等小型设备上运行时,图像上方和下方的间隙(背景)会更大。
我知道我需要像这样设置高度:
6 Plus - 386
6 - 347
4/5/SE - 292
如果可能,我如何在故事板中实现这一目标。
答案 0 :(得分:0)
如果您想在故事板中执行此操作,则需要使用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
}
希望这有帮助。