相关疑难解决方法(0)

使用自动布局以编程方式更改框架

我有一个UITableViewAutolayout,当GADBannerView屏幕底部出现时我需要降低高度.

不幸的是,使用Autolayout无法修改框架.解决方案是删除Autolayout并手动设置框架.这是非常危险的,因为我的所有应用程序在3.5'和4.0'显示上工作正常并删除自动布局导致新的测试阶段和更多的努力.

即使启用了自动布局,有没有办法改变帧?

objective-c uitableview ios autolayout

42
推荐指数
3
解决办法
4万
查看次数

如何使用一个故事板用于带有自动布局(ios6 + ios7)的4英寸和3.5英寸iphone屏幕?

虽然有很多关于构建故事板布局的问题和答案,它可以在4"和3.5"屏幕尺寸上工作,但我找不到适合以下场景的解决方案.

我使用autolayout和ios6(和ios7),我不需要支持landscpae或ipad.我有一个带有几个子视图的UIView,它们必须看作下面的模型.可以轻松地在故事板中设置自动布局约束以适应任一屏幕尺寸.我的问题是 - 如何根据运行时的屏幕大小使autolayout选择正确的约束?

屏幕MOCKUPS

请注意,我不想使用2个不同的故事板.在我的整个应用程序中这样做将需要做很多工作,而且我必须在每个故事板上连接所有代理,出口和操作.屏幕上的变化需要我做两倍的工作.

我已经尝试了两种方法在一个故事板上完成这项工作,但我对其中任何一个都不满意.

  • 加倍约束.较大的约束(50)具有比较低约束(30)更高的优先级.这种方法的问题在于,在3.5英寸屏幕尺寸上,自动布局可能只选择几个较低优先级的约束 - 足以满足布局 - 但保留一些高优先级约束.

双重约束

  • 子类NSLayoutConstraint.在此方法中,故事板中的所有约束都设置为NSDualLayoutConstraint.在NSDualLayoutConstraint的初始化代码中,如果运行时屏幕大小为3.5",则约束的常量将更改为3_5_constant的值.此方法更具确定性,但您无法在界面构建器预览中看到3.5"布局.

在此输入图像描述


如果只有界面构建器约束具有将在屏幕大小为3.5"时应用的辅助常量值,那么它将解决我的问题.所以我仍然问我的问题 - 如何正确使用单个故事板来正确布局其子视图屏幕尺寸为4"和3.5"?

iphone interface-builder ios autolayout nslayoutconstraint

25
推荐指数
2
解决办法
9080
查看次数

尺寸类专门用于纵向3.5英寸(iPhone 4S)XCode 6?

我正在调整我的UI应用程序,但我遇到了一个我无法解决的问题.

我可以看到Compact高度会影响4.7英寸以下的所有iPhone,但我的用户界面很好,除了iPhone 4S(3.5英寸).

我不想修改4.7英寸以下的所有iPhone的布局,只需要修改iPhone 4S,同时我不想遗漏这个设备.

有任何解决方法,所以我可以设置修正案,但仅适用于3.5英寸的肖像?或者我应该告别那里的1亿台设备?

我知道这是一个棘手的问题,几乎是民意调查,但从技术上讲,我想在这里找到最好的方法.

iphone xcode ios autolayout size-classes

22
推荐指数
4
解决办法
1万
查看次数

旋转的视图是否与自动布局兼容?

我学会了如何使用仿射变换旋转视图(参见此处).我还了解了自动布局(参见此处此处),甚至是程序化的自动布局(参见此处此处).但是,我不知道如何让自动布局与旋转视图一起使用.

此图显示了我想要做的事情:

在此输入图像描述

我认为问题来自宽度和高度因旋转而变化.有没有办法让旋转视图填充它的超视图?是否有一些技巧可以使自动布局工作或旋转后它是不兼容的?

(我只学过Swift,但如果你更熟悉的话,我会很高兴通过Objective-C答案.)

更新

按照@ VinayJain的建议,我做了以下事情:

  • 将子视图边缘固定到故事板中的superview.
  • 为子视图的所有边上的间距约束创建了IBOutlets.

    @IBOutlet weak var rightSpace: NSLayoutConstraint!
    @IBOutlet weak var leftSpace: NSLayoutConstraint!
    @IBOutlet weak var topSpace: NSLayoutConstraint!
    @IBOutlet weak var bottomSpace: NSLayoutConstraint!
    
    Run Code Online (Sandbox Code Playgroud)
  • 旋转子视图

    subview.transform = CGAffineTransformMakeRotation(CGFloat(M_PI_2))
    
    Run Code Online (Sandbox Code Playgroud)
  • 改变了网点的限制

    self.rightSpace.constant = CGFloat(0)
    self.leftSpace.constant = CGFloat(0)
    self.topSpace.constant = CGFloat(0)
    self.bottomSpace.constant = CGFloat(0)
    
    Run Code Online (Sandbox Code Playgroud)

但就在这一点上,我意识到我并不需要改变间距值.我希望间距保持为0.我只需要它来调整自己.然而,旋转混乱了.效果如下图所示:

在此输入图像描述

rotation ios autolayout

10
推荐指数
1
解决办法
1967
查看次数

如何为iPhone 6 +,6和5指定不同的尺寸?

我希望iPhone 6 +,6和5的每个视图看起来几乎相同.在附图中,我的意思是,例如,"取消"按钮应该是iPhone 5中屏幕左边缘30像素, 6 x为35 px,6 +为45 px,其他元素为+ px.

如何为每种类型的特定约束大小放置?如果我在约束中使用比例,那么按钮会增长,但是它们的大小不受控制,元素之间的空间也不能改变.具有特定约束大小的大小类我也不能使用,因为cW aH对于5和6个iphone是相同的.(据我所知).

我无法弄明白该怎么做.6和6+的不同设计通常如何管理?

在此输入图像描述

ios

0
推荐指数
1
解决办法
2475
查看次数

在IB中仅更改iPhone 4的约束值

如何只在一个设备上更改约束的值.例如,我想为iPhone 4以外的所有iPhone显示400px高度的按钮,我将用300px显示它?

xcode ios autolayout swift

0
推荐指数
1
解决办法
722
查看次数