我正在创建一个有很多按钮的应用程序。我已经在View上放置了所有必需的按钮并设置了所有约束。一切都在Storyboard中完成。我想创建一个按钮来改变所有按钮的布局。为此,我需要更改所有按钮约束。因此,例如,在单击“更改按钮布局”后,所有按钮都会更改其在View中的位置,例如x坐标+20和y坐标+20。有没有简单的方法来做到这一点?或者如果单击“更改按钮布局”按钮,我需要在代码中以编程方式更改所有约束?谢谢 最佳答案 您有几个选择:如前所述,创建一个容器,您将以编程方式或通过Storyboard将所有按钮添加到该容器,然后操作该容器
我有一堆布局略有不同但对顶部UILabel的垂直位置有相同要求的ViewController。它始终是状态栏的X(=70)个单位。这些ViewController可能会添加到带有导航栏或不带有导航栏的导航Controller。我如何制定一个相对通用的布局约束来考虑导航栏,以便无论ViewController是否在导航堆栈中,我的标题始终是状态栏的X个单位?(我知道我可以在运行时更改现有约束的常量,但这对于许多带有xibs的Controller来说可能有点问题。我正在寻找更通用的东西,最好是在界面构建器中)我正在使用带有安全区域指南的iOS11SDK。请看图片更清楚。状态栏只有X单位到状
如何使用自动布局使一个View的高度等于其他两个View高度的总和?例如:viewA.heightAnchor.constraint(equalTo:...),viewB.heightAnchor.constraint(equalTo:...),viewC.heightAnchor.constraint(equalTo:viewA.heightAnchor+viewB.heightAnchor)是否有一种解决方案不涉及设置常量值并在每次View边界更改时重新计算它? 最佳答案 你可以,但我认为只有在一些辅助View的帮助下。请参阅我
接上篇安卓玩机搞机技巧综合资源------如何提取手机分区小米机型代码分享等等【一】安卓玩机搞机技巧综合资源------开机英文提示解决dm-veritycorruptionyourdeviceiscorrupt.设备内部报错AB分区等等【二】安卓玩机搞机技巧综合资源------EROFS分区格式小米红米机型分区类型刷写recovery方法列举【三】安卓玩机搞机技巧综合资源------进入9008步骤MTK端口修改屏幕分辨率如何刷写GSI镜像等等【四】安卓玩机搞机技巧综合资源-----关闭miui广告怎么省电替换开机动画LOGO锁屏壁纸等等【五】安卓玩机搞机技巧综合资源-----卸载内置软件获
第一张图片显示了底部容器View的约束。“Bottomspacetosuperview”设置为0。无论屏幕高度如何,我都希望容器固定在屏幕底部。我不想限制从底部容器View到屏幕顶部的距离,但Xcode会自动创建一个(顶部空间到superView=508)并且不会让我删除它。为什么要这样做?我的容器View的位置完全由其他3个约束及其高度(60像素)定义。更重要的是,当我运行应用程序时,容器View不适合屏幕。它被部分切断。即使“bottomspacetosuperview”被限制为0,容器View的底部也会被截断。这是怎么回事? 最佳答案
是否可以打印出在Storyboard中创建的自动布局中设置的约束?我想用代码重新创建我在Storyboard中所做的事情。 最佳答案 UIView的所有实例都有一个名为constraints的属性。这是与该特定View关联的所有NSLayoutConstraint的NSArray。你可以traverseaviewhierarchyrecursively从RootView,然后打印出所需的layoutconstraintproperties.//foreachviewinhierarchyfor(NSLayoutConstraint*
我正在我的应用程序中实现自动布局。我希望通过以编程方式使用自动布局将UILabel放置在距离屏幕底部20px的位置。请帮助我解决我出错的地方。使用以下代码,UILabel在应用时不显示底部约束。下面是我的代码。lblSwipe=[[UILabelalloc]init];lblSwipe.text=@"Swipetolearnmore";lblSwipe.textColor=[UIColorlightGrayColor];lblSwipe.textAlignment=NSTextAlignmentCenter;lblSwipe.backgroundColor=[UIColoryellow
我有一个UIView,它包含另一个名为contentView的UIView对象。在contentView中,我有几个UITextField对象。为了使当前编辑的UITextField始终可见并且不会被键盘隐藏,我正在更改textFieldDidBeginEditing:中contentView的约束:方法。这意味着contentView在父级UIView中上下滑动,并保持相关的UITextField可见。这部分工作正常,但这里有一个代码片段:-(void)textFieldDidBeginEditing:(UITextField*)textField//offsetcalculatio
我正在子类化UIView以构建自定义控件。我想在哪里添加subview的布局约束?我已将它们添加到init中,但我认为除了初始化之外,这里不适合做任何事情。我不想在layoutSubviews中做,因为我担心后续调用会重新创建约束。这种东西放在什么地方比较合适? 最佳答案 这里有很多选项。我认为initWithFrame:和layoutSubviews(通过适当的检查以避免重复添加)都可以工作,但是updateConstraints是在subview上安装约束的规范位置。您还需要避免在那里重复添加。
我需要以编程方式更改某些View的中心。10个或更多。我不想将每个底部约束添加为导出,所以我可以从如下代码中搜索它们:for(NSLayoutConstraint*constraintinview.constraints)我应该检查哪些属性?我需要限制superview的底部空间。 最佳答案 您听说过IBOutletCollection吗?当您将任何对象从IB链接到VC代码时,在弹出窗口中您可以选择IBOutletCollection选项。链接所有你想要的约束后,只迭代这个集合:)@property(strong,nonatomic