是否需要切换到IOS自动布局?
我有一个应用程序启动并运行,它使用旧的iOS xib弹簧和支柱设计方法。每个屏幕都包含两个适用于iPhone 3.5英寸和iPhone 4英寸的xib文件,所有编程动画都略微通用,以便在两种分辨率下都能工作 自从iPhone6和iPhone6 Plus手机推出以来,这一切都有点失败,以至于这些设备上的应用程序浏览量非常小。我使用了一种变通方法,通过删除6和6+分辨率的“必需”图标文件,确保该应用程序在6和6+上扩展,该图标文件告诉iOS,该应用程序是为了支持这些设备上的本机分辨率而设计的 我的问题是,每次视图出现问题时,我都尝试将所有视图切换到自动布局和大小类(花费了4天的时间)。有些图像只在高度上放大,有些拥抱一侧,有些滚动视图只在一侧显示图像,等等,所以我恢复使用相同的struts和Spring技术是否需要切换到IOS自动布局?,ios,objective-c,autolayout,xib,iphone-6,Ios,Objective C,Autolayout,Xib,Iphone 6,我有一个应用程序启动并运行,它使用旧的iOS xib弹簧和支柱设计方法。每个屏幕都包含两个适用于iPhone 3.5英寸和iPhone 4英寸的xib文件,所有编程动画都略微通用,以便在两种分辨率下都能工作 自从iPhone6和iPhone6 Plus手机推出以来,这一切都有点失败,以至于这些设备上的应用程序浏览量非常小。我使用了一种变通方法,通过删除6和6+分辨率的“必需”图标文件,确保该应用程序在6和6+上扩展,该图标文件告诉iOS,该应用程序是为了支持这些设备上的本机分辨率而设计的 我的问
let c = self.leftConstraint.constant
NSLayoutConstraint.deactivateConstraints([self.leftConstraint])
let rightConstraint = NSLayoutConstraint(
item: v, attribute: .Trailing, relatedBy: .Equal, toItem: self.view,
attribute: .TrailingMargin, multiplier: 1, constant: -c)
NSLayoutConstraint.activateConstraints([rightConstraint])
UIView.animateWithDuration(0.4, animations: {self.view.layoutIfNeeded()})
NSLayoutConstraint
对象的指针,然后只需更改[UIView animate…
块中的.constant
值你不必切换到自动布局,但越快切换,从长远来看,事情就越简单。谁知道我们将来会看到什么新尺寸的屏幕 使用AutoLayout时,您可以设置视图的动画,只需稍微不同。您可以更改影响视图的约束,而不是更改帧矩形。这可以通过更改现有约束上的常数、更改优先级来实现(注意,您不能更改设置为1000的优先级),或通过添加/删除约束 设置这些更改的动画的步骤包括: 1) 在父视图上调用
layoutifneed
,以确保所有内容都已位于正确的位置。2) 对约束、常数、优先级等进行所需的更改。
3) 再次调用
layoutIfNeeded
,这次是在UIView
的animateWithDuration
方法中。要开始使用iPhone 6/6+,请将代码中的320
的所有实例替换为cRectGetWidth(self.view.frame)
。如果它不起作用,请将代码移动到视图WillLayoutSubViews
,或者layoutSubviews
,如果它是UIView
子类。回答非常好-考虑周到,信息量非常丰富。非常好,即使我也给出了答案,我也不得不对其进行投票!非常有用。这就是堆栈溢出的原因。