ios7 4S和IOS8 5S的自动布局设计

ios7 4S和IOS8 5S的自动布局设计,ios,objective-c,ios7,ios8,autolayout,Ios,Objective C,Ios7,Ios8,Autolayout,我已经为我的客户开发了一个应用程序,我的客户和我正在使用iphone4s(IOS7)。最近我的客户在5c(IOS8)中使用了我的代码。现在这里面有各种各样的问题。现在我开始研究这些问题。 有人建议我使用AutoLayout设计UI。在我的项目中,我没有使用XIB,我只是按程序进行,我没有接触到XIB。所以现在我开始以编程的方式进行AutoLayout的研发。但我无法理解它(以编程方式自动布局)。有什么建议吗 IOS 7 4S IOS8 5S 首先进行一些阅读,了解autolayout实际上是什

我已经为我的客户开发了一个应用程序,我的客户和我正在使用iphone4s(IOS7)。最近我的客户在5c(IOS8)中使用了我的代码。现在这里面有各种各样的问题。现在我开始研究这些问题。 有人建议我使用
AutoLayout
设计UI。在我的项目中,我没有使用XIB,我只是按程序进行,我没有接触到XIB。所以现在我开始以编程的方式进行AutoLayout的研发。但我无法理解它(以编程方式自动布局)。有什么建议吗

IOS 7 4S

IOS8 5S

首先进行一些阅读,了解autolayout实际上是什么以及应该如何使用。看一看和/或看一看。它们都在使用故事板,但它们可以帮助您理解自动布局的概念。在Ray Wederlich的网站上,你还可以找到关于如何实用地使用autolayout的其他文档,但我认为你必须为此付费。这是值得的,但你也可以在网上免费找到其他帮助

我遵循的基本原则是:

  • 创建视图

    UIView *myView = [UIView new];
    
  • 设置TranslatesAutoResizengMaskinToConstraints属性

    myView.translatesAutoresizingMaskIntoConstraints = NO;
    
  • 将视图添加为子视图

    [self.view addSubview:myView];
    
  • 添加约束

    NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:myView 
                             attribute:NSLayoutAttributeTop 
                             relatedBy:NSLayoutRelationEqual
                                toItem:self.view 
                             attribute:NSLayoutAttributeTop
                            multiplier:1.0 
                              constant:0.0];
    
    [self.view addConstraint:constraint];
    
您需要添加多个约束,以便按照与周围其他视图的关系完全按照您的需要布局视图

我还建议您创建自己的类别,以便在回读时更快、更容易地编写autolayout代码。举个例子:


如果你能让你的问题更具体一点,也许可以给你一些更好的示例代码,但你的问题太大太广,因此请接受本答案中给出的建议以及其他建议,并阅读相关主题。首先制作一个简单的项目,并使用autolayout来布局一些视图,然后随着您的信心增强,构建更复杂的视图

如果您想以编程方式使用中的
自动布局
,请使用此链接,另一个链接是

这包含
NSLayoutConstraint.h
文件下的
UIKIT框架中可用的所有
NSLayout
枚举类型

typedef NS_ENUM(NSInteger, NSLayoutAttribute) {
NSLayoutAttributeLeft = 1,
NSLayoutAttributeRight,
NSLayoutAttributeTop,
NSLayoutAttributeBottom,
NSLayoutAttributeLeading,
NSLayoutAttributeTrailing,
NSLayoutAttributeWidth,
NSLayoutAttributeHeight,
NSLayoutAttributeCenterX,
NSLayoutAttributeCenterY,
NSLayoutAttributeBaseline,

NSLayoutAttributeNotAnAttribute = 0
};

在我的选择u使用自动调整大小,这是更好的为您的design@Hoston,只需添加代码[yourview addConstraints:constraint];干杯如果你需要帮助,请问我,我当然希望你能帮助我