gpt4 book ai didi

ios - 用尺寸等级区分 iphone 4 vs 5 vs 6 vs 6+ 肖像

转载 作者:行者123 更新时间:2023-12-01 17:07:27 25 4
gpt4 key购买 nike

我为每种设备设计了不同的偏移量和元素大小。
有没有办法为不同的iphone纵向设置不同的值(使用大小类或其他)(它们都是紧凑的|常规的)?
如果不是 - 解决此类任务的最佳方法是什么?
更新
例如,我在 上有 Logo 每个 (包括不同的 iphone) Logo 的平台顶部偏移量不同(甚至以点为单位)。
我想避免这样的代码

- (CGFloat)topLogoConstraintAccordingToSize:(CGSize)size {
CGFloat top = 0;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){
if (size.height > size.width){
top = 56;
} else {
top = 35;
}
} else {
if (IS_IPHONE_4){
top = 36;
} else if (IS_IPHONE_5){
top = 22;
} else if (IS_IPHONE_6){
top = 50;
} else if (IS_IPHONE_6_PLUS){
top = 56;
}
}
return top;
}
//宇宙中的其他地方
self.logoTopConstraint.constant = [self topLogoConstraintAccordingToSize:size];
此外,我不想为每个平台创建单独的 Storyboard——更糟糕的是。

最佳答案

您可以将约束与后面的代码连接起来,并根据需要更改值。

这可能看起来像:
- 在 .h 文件中:

@property (weak, nonatomic) IBOutlet NSLayoutConstraint *constraint;

-在 .m 文件中:
if ([platform isEqualToString:@"iPhone3,3"])    constraint.constant=1;//put value you want instead of 1,2 and 3
if ([platform isEqualToString:@"iPhone4,1"]) constraint.constant=1;
if ([platform isEqualToString:@"iPhone5,1"]) constraint.constant=2;
if ([platform isEqualToString:@"iPhone5,2"]) constraint.constant=2;
if ([platform isEqualToString:@"iPhone5,3"]) constraint.constant=2;
if ([platform isEqualToString:@"iPhone5,4"]) constraint.constant=2;
if ([platform isEqualToString:@"iPhone6,1"]) constraint.constant=2;
if ([platform isEqualToString:@"iPhone6,2"]) constraint.constant=2;
if ([platform isEqualToString:@"iPhone7,1"]) constraint.constant=3;
if ([platform isEqualToString:@"iPhone7,2"]) constraint.constant=3;

但是,我不确定你想要达到什么目的。每个元素都以点为单位,应该看起来不错(1x、2x 和 3x)。你能解释一下你想做什么吗?

关于ios - 用尺寸等级区分 iphone 4 vs 5 vs 6 vs 6+ 肖像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27963350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com