ios - 我可以为 4.7 和 5.5 设置特定的自动布局约束吗

标签 ios xcode mobile autolayout

我可以通过为 4.7 (iPhone 6) 和 (iPhone 6 plus) 使用自动布局和 Storyboard来实现特定的和不同的约束吗

例如,我希望图标有 50 像素用于 4"、60 像素用于 4.7"和 66 用于 5.5"iphone。?

最佳答案

您好,您有两种方法:

  • 将图标的宽度与屏幕的宽度相关联。实际上,如果您希望当屏幕为 4'' 时图标的宽度为 50px,那么 320px,乘数为 50.0/320.0 = 0.15625:

    NSLayoutConstraint *constraint = [NSLayoutConstraint  
                                        constraintWithItem:iconImageView 
                                        attribute:NSLayoutAttributeWidth 
                                        relatedBy:NSLayoutRelationEqual 
                                        toItem:self.view 
                                        attribute:attribute:NSLayoutAttributeWidth 
                                        multiplier:0.15625 
                                        constant:0]; 
    
    [self.view addConstraint:constraint];
    

    显然还在 iconImageView 上设置了约束 proportional width/height。 按照这个比例,iPhone 6+ 上的图标宽度(以及高度)将产生 414*0.15625 = 64.6875;

  • 第二种方法是将 IBOutlet 设置为 iconImageView 的固定宽度约束,并将其从检查屏幕宽度的代码中更改:

    if ([UIScreen mainScreen].bounds.size.width == 320.0) {
        myConstraintsWidth.constant = 50.0;
    } .... and so on
    

    这里显然也在 iconImageView 上设置了约束 proportional width/height

IMO 我非常喜欢第一个选项。它很干净,效果很好。

干杯!

关于ios - 我可以为 4.7 和 5.5 设置特定的自动布局约束吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28106514/

相关文章:

javascript - 使用 javascript 在移动设备中播放多种音频声音

适用于移动设备和桌面设备的 jQuery Mobile?

ios - 结合向下滑动和长按

ios - 使用 Bool 通过 SwiftUI 动态过滤 @FetchRequest - 显示 true、false 或两者

ios - 从 Storyboard加载时 XCTest 中出现 "Could not cast"错误

ios - 如何在不同的 ViewController 中使用 JSONModel 数据?

xcode - 在代码片段库 (Xcode 10) 中添加代码片段

php - 如何在移动设备的 php 中隐藏 div 内容?

ios - 点击表格 View 中的按钮 - 错误的单元格

android - 类型 'Future<List<Data>>' 不是类型转换中类型 'List<Data>' 的子类型