标签: autolayout

具有自调整大小的单元格的UICollectionView在插入/移除动画期间调整单元格大小

我有一个带有UICollectionViewFlowLayout的简单UICollectionView,它使用autolayout来允许自定义单元格.在静态布局中,事情很有效,但是当我插入或删除单元格时,单元格会调整为估计的大小:

[self.collectionView performBatchUpdates:^{
    [self.collectionView insertItemsAtIndexPaths:@[indexPath]];
} completion:nil];
Run Code Online (Sandbox Code Playgroud)

除了设置估计的大小,像这样:

layout.estimatedItemSize = CGSizeMake(88.0, 88.0);
Run Code Online (Sandbox Code Playgroud)

我在集合视图中没有做任何奇特的事情.一切都是使用故事板设置的.

我怎样才能避免这种大小调整?我只针对iOS 8.0及以上,因此应该支持它.

问题的例子

ios autolayout uicollectionview ios8

26
推荐指数
1
解决办法
2034
查看次数

如何在Xcode 4.5/iOS中设置UIView的标识符以调试自动布局?

在WWDC 2012(掌握自动布局的最佳实践)的演讲中,演示者表示您可以在Xcode中设置UIView标识符以帮助调试自动布局:

UIView的标识符

这似乎是一个非常好的主意,但在我的iOS项目的Xcode 4.5.1中,我无法看到设置UIView的身份.

如何在Xcode 4.5.1中设置UIView的标识?如果在iOS项目中无法做到这一点,我该如何获得相同的功能?

ios autolayout xcode4.5

25
推荐指数
3
解决办法
1万
查看次数

AutoLayout + RTL + UILabel文本对齐

我终于开始与Auto Layout进行摔跤,似乎无法弄清楚如何从右到左(RTL)支持以我期望/想要的方式工作......

我在Interface Builder中设计了如下所示的视图:

IB

使用英语时,生成的应用程序按预期运行:

英语

但是,当切换到RTL语言(在这种情况下是阿拉伯语)时,整个视图翻转(这很好),但是UILabel文本仍然是左对齐的.我希望它是正确的对齐,以保持它对抗UIImageView.

阿拉伯

很明显,我遗漏了一些东西和/或这不属于自动布局.

我应该textAlignment在使用RTL语言时手动设置吗?

interface-builder ios autolayout

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

如何使用一个故事板用于带有自动布局(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
查看次数

出现视图后应用iOS 8/XCode 6自动布局约束

我有一个与XCode 5和iOS 7一起工作得很好的项目,但是当我最近下载XCode 6时,我注意到autolayout出现了一些奇怪的行为.

我有一个故事板,其视图只有一个UIImageView和两个UILabel.使用UiPageViewController加载此视图.UIImageView在视图中水平和垂直居中,并且存在约束,指定两个标签与图像视图的距离.当故事板和自动布局值发生冲突时(例如,在故事板中,一个标签在图像视图上方20个像素但自动布局显示它应该在40像素以上),过去的自动布局值是在加载视图之前成功应用.因此,当视图第一次显示时,一切都在正确的位置.

现在使用iOS 8/XCode 6,我看到视图加载然后事情跳转到他们的最终自动布局位置.在模拟器和真实设备上,这种跳转对于最终用户来说是显而易见的,而且它真的很烦人.有没有办法回到过去的行为?据我所知,没有代码更改导致此问题.

xcode ios uipageviewcontroller autolayout xcode6

25
推荐指数
1
解决办法
8507
查看次数

UIScrollView AutoLayout仅垂直

我想让AutoLayout UIScrollView与它一起工作,并且我遇到了一些麻烦.这是我做的:

  1. UIScrollView在主视图内添加框架:[top:0,left:0,width:320,height:568]

  2. UIViewUIScrollViewwith frame和bgcolor black中添加"ContentView" :[top:0,left:0,width:320,height:568]

  3. 设置UIScrollView约束:[top:0,bottom:0,left:0,right:0]

  4. 设置"ContentView"约束:[top:0,bottom:0,left:0,right:0]

  5. 对齐"ContentView"中的项目

  6. 将主视图bgcolor设置为灰色(查看发生了什么)

以下是问题的屏幕截图:http://imgur.com/P8s9lB0

由于某种原因,约束使内容视图位于屏幕的中间.此外,它向各个方向滚动.我希望内容只能在垂直方向上滚动UITableView,所以我不能这样移动:http://imgur.com/lBCwfAS

我究竟做错了什么?我已经检查了StackOverflow和Google中可以找到的所有教程和答案,并且没有人真正有一个奇怪的问题,所以我正在寻求帮助.

编辑:我还添加了ContentView的宽度和高度作为约束,这也没有帮助.

objective-c uiscrollview ios autolayout swift

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

设置文本后,使用自动布局获取UITextView动态高度

我有一个UITextView不可滚动,界面构建器设置自动布局,文本动态增加或减少没有问题,但我想知道设置文本后新的UITextView高度是什么,我试图这样做:

NSLog(@"text before: %.2f",self.myText.frame.size.height);
[self.myText setText:self.string];
NSLog(@"text after: %.2f",self.myText.frame.size.height);
Run Code Online (Sandbox Code Playgroud)

这是结果:

text before: 47.50
text after: 47.50
Run Code Online (Sandbox Code Playgroud)

当我运行它时,视图中的文本会增加,但是大小是一样的,如何在设置文本后获得真正的高度?

objective-c uitextview ios autolayout

25
推荐指数
6
解决办法
4万
查看次数

如何在iOS Auto布局中为按钮添加Equal Spacing和相等宽度

我对Xcode中的Auto布局约束不熟悉.我有一个像UITabBar6的底部视图UIButtons.在没有约束的情况下,我将这些按钮与每个按钮的5个空格填充对齐,每个按钮的宽度为50.现在,我试图通过使用自动布局来支持所有屏幕尺寸.

在Storyboard约束中,我为6个按钮设置了相等的宽度,每个按钮之间有60个空格.我将第一个按钮0设置为前导空格,然后将最后一个按钮0设置为尾部约束.

我想要buttons with equal width and flexible spaces所有设备尺寸的视图之间.

有人可以帮我吗?寻求帮助.提前致谢.

在此输入图像描述

ios autolayout nslayoutconstraint swift

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

纵向和横向模式下的不同布局

我们假设我在iPad Portrait上有这种布局设计.

屏蔽1

但是当iPad处于风景中时,我想这样做: 画面2

是否可以使用自动布局?或者使用少量代码?

xcode ios autolayout

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

UIStackView - 从中​​心均匀分布视图

我有一个UIStackView,里面UIScrollView显示水平排列的动态添加的子视图.当前的解决方案将开始显示左侧的项目,我想开始从中心分配项目而不更改子视图的宽度和高度.我怎么做?我也对不使用的解决方案持开放态度UIStackView.这样我就可以支持设备<iOS9.

CURENT

(当前)

预期

(预期)

uiscrollview ios autolayout ios9 uistackview

25
推荐指数
1
解决办法
7191
查看次数