为啥我的 UILabel 的 AutoLayout 不起作用
Posted
技术标签:
【中文标题】为啥我的 UILabel 的 AutoLayout 不起作用【英文标题】:Why my UILabel 's AutoLayout not working为什么我的 UILabel 的 AutoLayout 不起作用 【发布时间】:2015-06-26 08:39:43 【问题描述】:-
在情节提要中,我设置了视图控制器尺寸 iPhone3.5 英寸
使用 UILabel 添加约束
UILabel.text 无法全部显示,所以我将视图控制器尺寸更改为 iPhone 4.7 英寸
所以我点击 UIlabel 更新框架,自动布局工作,一切正常!这是 iPhone 4.7 英寸
现在问题来了,当我在 iPhone 模拟器 iPhone 6 中运行时,自动布局不起作用,标签大小仅缩放,宽度不会变长。并且以下三个图像同时限制了宽度和高度32,但是在模拟器iPhone 6 图片尺寸看起来更大,为什么会这样?请帮帮我,很想
不管是iphone6还是iphone5 iphon6+,这里代码输出320,为什么...
-(void)viewDidLayoutSubviews
[super viewDidLayoutSubviews];
NSLog(@"%f",self.view.frame.size.width);
【问题讨论】:
为了支持 iPhone 6/6+(并避免缩放模式),您必须明确提供设备的 LaunchScreen 文件/图像。 See this answer for more info @Alladinian 非常感谢你,它对我有用。 【参考方案1】:根据您的问题,如果您不希望显示文本...那么您需要做的就是设置行数 = 0 并将换行模式设置为 自动换行。
当您使用标签时,它不需要任何高度限制。
如果您正在使用大小类构建应用程序并使用 launchScreen.xib,那么您的标签将不会缩放,如果您使用的是启动图像,那么您需要所有初始屏幕图像的精确尺寸。
您可以在下面的网址中找到有关启动画面的大小。
https://***.com/a/26191308/4101371
我添加了带有约束和标签属性更改的视图图像。
结果将在设备和模拟器中以类似方式显示。
如果您不想在多行中显示标签,那么您可以设置 Auto Shrink(最小字体大小/最小字体比例)
希望它能帮助您解决问题。
【讨论】:
【参考方案2】:-
您不会忘记为箭头图像设置约束吗?
使用固定的高度/宽度设置尾随和顶部约束。
-
将标签的“Autoshrink”属性设置为“Fixed font size”
这可以防止标签根据其框架改变字体大小
-
为图像重新创建约束 - 它看起来像是固定到超级视图,因此在运行时它会缩放到超级视图的大小
希望这会有所帮助。
【讨论】:
以上是关于为啥我的 UILabel 的 AutoLayout 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
UItableviewcell中的多行UIlabel使用Autolayout
如何使用 AutoLayout 使我的 UIImage 的高度与我的 UILabel 的固有高度相同?
使用 AutoLayout 在 UITableViewCell 中垂直居中多个 UILabel?