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上显示不同的尺寸?的主要内容,如果未能解决你的问题,请参考以下文章

如何以针对不同尺寸显示器的模式排列多个 UIView

对于相同的 iPhone 5s,iOS 模拟器在 ios 7.1 和 ios 8.2 之间具有不同的屏幕高度

没有自动布局的不同屏幕尺寸的相同故事板

尝试调整我的 UIView 容器以适应较小的 iPhone 屏幕尺寸

在 iPhone 上为不同的图像尺寸使用 Xcode 自动布局

iOS:UIView 动画,没有动画发生