iOS,相同尺寸的UIView在不同的iphone上显示不同的尺寸?
Posted
技术标签:
【中文标题】iOS,相同尺寸的UIView在不同的iphone上显示不同的尺寸?【英文标题】:iOS, same size UIView show different size in different iphone? 【发布时间】:2020-11-10 04:42:58 【问题描述】:我只是写了一个很简单的 UIView(width :200, height:200),当我在 iphone XR 和 iphone 6 plus 上运行时,显然 iphone 6 plus 上的 UIView 比 iphone XR 大,为什么?
- (void)viewDidLoad
[super viewDidLoad];
// Do any additional setup after loading the view.
UIView* view =[[UIView alloc] initWithFrame:CGRectMake(100, 200, 200, 200)];
view.backgroundColor = [UIColor orangeColor];
[self.view addSubview:view];
【问题讨论】:
@Sweeper,我把两个iphone贴近了,其实大小不一样,不是视觉错觉。 糟糕,我错了。 ios中的“积分”意味着不同的东西。见this。您需要进行一些计算才能获得相同的物理尺寸。 iPhone Xr 宽度为 414 点,iPhone 6 为 375 点,可能是这样吗? @Cy-4AH UIView的宽高是固定的,200*200 @zhouxinle 设备的ppi不同 【参考方案1】:在下面使用。
var iPhoneFactorX: CGFloat = (UIScreen.main.bounds.size.width*1.00/1080.0)
UIView* view =[[UIView alloc] initWithFrame:CGRectMake(100*iPhoneFactorX, 200*iPhoneFactorX, 200*iPhoneFactorX, 200*iPhoneFactorX)];
现在所有 iPhone 的视图都相同。
1080
可以是任何东西,具体取决于设计师为您提供应用屏幕截图的大小。
我们使用 1080 是因为设计师为我们提供了 1080x1920 尺寸的应用截图。
【讨论】:
@zhouxinle : 然后把 200 改成需要的数字以上是关于iOS,相同尺寸的UIView在不同的iphone上显示不同的尺寸?的主要内容,如果未能解决你的问题,请参考以下文章
对于相同的 iPhone 5s,iOS 模拟器在 ios 7.1 和 ios 8.2 之间具有不同的屏幕高度
尝试调整我的 UIView 容器以适应较小的 iPhone 屏幕尺寸