Ios 处理3.5“的略有不同的设计;vs 4“;苹果手机

Ios 处理3.5“的略有不同的设计;vs 4“;苹果手机,ios,ios6,Ios,Ios6,对于4英寸与3.5英寸屏幕设计略有不同的应用程序,是否有任何建议的处理策略? 设计师将两个对象放置在稍微不同的位置,但其方式似乎不适合布局约束 除了我希望避免的分支和调整对象位置的代码之外。有没有解决这种情况的可行策略?这可能不是一个理想的解决方案,我知道它确实有一个分支,但在这种情况下(只有少数元素会受到设计变更的影响)我喜欢创建一个方法,根据设备和/或方向返回视图/控件/任何对象的中心。一个非常简单的实现如下所示: -(CGPoint)centerForButton:(UIButton *)

对于4英寸与3.5英寸屏幕设计略有不同的应用程序,是否有任何建议的处理策略? 设计师将两个对象放置在稍微不同的位置,但其方式似乎不适合布局约束


除了我希望避免的分支和调整对象位置的代码之外。有没有解决这种情况的可行策略?

这可能不是一个理想的解决方案,我知道它确实有一个分支,但在这种情况下(只有少数元素会受到设计变更的影响)我喜欢创建一个方法,根据设备和/或方向返回视图/控件/任何对象的中心。一个非常简单的实现如下所示:

-(CGPoint)centerForButton:(UIButton *)button{
    if([button isEqual:buttonThatNeedsRepositioning]){
        if([[UIScreen mainScreen] bounds].size.height == 568){
            //return center for 4inch-Screen
        }else{
            //return center for 3.5inch-Screen
        }
    }
    return nil;
}
现在,在viewDidLoad中,您可以只分配

ButtonthatNeedsRelocation.center=[self-centerForButton:ButtonthatNeedsRelocation]

这就是我几天前解决这个问题的方法,但我觉得它可以改进。欢迎提出建议。
希望有帮助;)

两个不同的故事板/XIB?要么这样,要么你和你的设计师谈谈。你说你不想做的最后一个选择是:在代码中调整它。如果达到这个目的,这绝对是一个很好的代码分支方法。明确了它的功能,至少它在这些功能中隔离了它eah,但代码分支基本上是指需要维护的更多代码,以及处理其他视图、动画、旋转、偏移等时可能出现的更多故障@Can-你有更好的主意吗?我洗耳恭听。我也在同一条船上,我一直在维护旧代码,这些代码可以毫不费力地完成这类事情(我们不能支持自动布局)。最成功的方法是坚持调整子脚本的大小,如果还不够的话,编写手动定位代码,但不要编写if-else,而是尝试以等式形式编写它们,确保不仅涵盖了A和B案例,而且还涵盖了它们之间的转换。在您的示例中,基本返回
CGPoint(GetMidX,GetMidY)
比硬编码灵活得多。@Can-谢谢您的回复。但我认为我们中的一方误解了另一方。不知道是哪条路。我不是想找到一个视图的中心,我是想设置它。这意味着我需要做硬编码部分,对吗?