我有一个自定义单元格,需要并排布置两个 UILabel。两个标签的宽度都是动态的并且可以换行。
我定义的自动布局在以下情况下会失败
如果整个单元格和包含的部分在旋转之前不在屏幕上,则布局不会失败
这里是它工作和旋转后的几个屏幕截图
这是具有以下约束的布局
this.ContentView.AddConstraint(
NSLayoutConstraint.Create(
this.TextLabel, NSLayoutAttribute.Left, NSLayoutRelation.Equal, this.ContentView, NSLayoutAttribute.Left,
1.0f, (nfloat)LeftRightPadding));
this.ContentView.AddConstraint(
NSLayoutConstraint.Create(
this.TextLabel, NSLayoutAttribute.Top, NSLayoutRelation.Equal, this.ContentView, NSLayoutAttribute.Top,
1.0f, (nfloat)TopAndBottomPadding));
this.ContentView.AddConstraint(
NSLayoutConstraint.Create(
this.TextLabel, NSLayoutAttribute.Bottom, NSLayoutRelation.Equal, this.ContentView, NSLayoutAttribute.Bottom,
1.0f, 0 - (nfloat)TopAndBottomPadding));
this.ContentView.AddConstraint(
NSLayoutConstraint.Create(
this.DetailTextLabel, NSLayoutAttribute.Right, NSLayoutRelation.Equal, this.ContentView, NSLayoutAttribute.Right,
1.0f, 0 - (nfloat)LeftRightPadding));
this.ContentView.AddConstraint(
NSLayoutConstraint.Create(
this.DetailTextLabel, NSLayoutAttribute.Top, NSLayoutRelation.Equal, this.ContentView, NSLayoutAttribute.Top,
1.0f, (nfloat)TopAndBottomPadding));
this.ContentView.AddConstraint(
NSLayoutConstraint.Create(
this.DetailTextLabel, NSLayoutAttribute.Bottom, NSLayoutRelation.Equal, this.ContentView, NSLayoutAttribute.Bottom,
1.0f, 0 - (nfloat)TopAndBottomPadding));
this.ContentView.AddConstraint(
NSLayoutConstraint.Create(
this.DetailTextLabel, NSLayoutAttribute.Left, NSLayoutRelation.Equal, this.TextLabel, NSLayoutAttribute.Right,
1.0f,
10));
如何阻止左侧标签的挤压?
将 UILabel 的内容拥抱优先级提高到 750 以上。
最初,内容拥抱和内容压缩阻力优先级如下所示。
如下设置值
可以为这些设置任何值,但要根据您的优先级。
关于ios - 无法在具有动态宽度的表格单元格中并排自动布局两个 UILabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33211974/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |