我正在尝试以编程方式生成一个“分数页面”,其中每个属性的分数都有一个UILabel和一个UISlider。由于没有固定数量的属性,我决定以编程方式执行此操作(而不是在Storyboard中)我的想法是为每个属性创建一个UIView,然后将一个UILabel和一个UISlider插入到UIView中,然后设置约束。但是,我遇到了一个问题,即我无法正确设置约束,或者由于缺乏执行此类操作的经验而可能错过的另一个巨大错误。结果,所有UIView都粘在屏幕的左上角(0,0)并且彼此重叠。到目前为止,这是我的代码:funcaddLabels(attributesArray:[String],tes
我试图遍历View约束。我向view1添加了:顶部、尾部、前导和高度约束。top、trailing和leading是主ViewControllersView。如果我遍历view1的约束,我只会看到高度约束。forconstraintinview1.constraints{print(constraint)}NSLayoutConstraint:0x6180000968a0UIView:0x7fae6b409dd0.height==146(active)所以我遍历了它的superView约束(ViewControllers主视图),我得到了很多约束,其中一些与view1相关联。forco
一个可重现的例子classViewController:UIViewController{varcreated=falseoverridefuncviewDidLayoutSubviews(){super.viewDidLayoutSubviews()if!created{letscrollView=UIScrollView()scrollView.backgroundColor=UIColor.grayColor()view.addSubview(scrollView)letkidView=UIView()kidView.backgroundColor=UIColor.redColo
我有一个带有选项卡栏的项目,每个选项卡都有一个自定义导航栏。每个导航栏UIView都在Storyboard中设置了高度约束常量。我想将这个NSLayoutConstraint子类化(用于Nav高度),以便它改变iPhoneX的高度。iPhoneX上的导航栏需要更高,因为我没有使用“outof盒子”对象,我的约束需要手动设置。本质上,我想在子类中做类似下面的事情,这样我就不必重复一堆代码和做不必要的导出:overridefuncviewWillLayoutSubviews(){navBarHeightConstraint.constant=navBarHeightConstraintCo
我在UIViewController中设置了一些在ios8上运行良好的布局约束。但是,一旦我在ios7上运行它,就会出现以下错误:***Assertionfailurein-[UIViewlayoutSublayersOfLayer:],/SourceCache/UIKit_Sim/UIKit-2935.137/UIView.m:8803这是我的代码:classDatacenterIndicatorViewController:UIViewController{letsideMargins:Float=12.0vardataCenterPollingLabel:UILabel=UILa
我对单元格使用自动高度。每次我想用新数据(这里是模型变量)更新我的单元格时,我更新了我的自动布局约束,但我得到了一个错误。这里只是为了说明问题,我什至没有更改约束。我只是要求重新计算布局。在单元格的第一个初始化:没有警告,没问题。错误:代码:tableView.rowHeight=UITableViewAutomaticDimensionoverridefunctableView(_tableView:UITableView,estimatedHeightForRowAtindexPath:IndexPath)->CGFloat{return500}classTestTableView
下面是我的配置文件View约束,View呈现良好,但宽度始终返回零。因此,最终约束profileImageView.layer.cornerRadius=(profile.frame.width/2)每次都返回零。profileImageView.translatesAutoresizingMaskIntoConstraints=falseaddConstraint(NSLayoutConstraint(item:profileImageView,attribute:.width,relatedBy:.equal,toItem:containerView,attribute:.widt
NSLayoutConstraint(在iOS8.0中)有一个名为active的BOOL属性,可以轻松禁用/即时启用所述布局约束。要为ViewController创建第二个布局集,然后我可以以编程方式启用/禁用(通过NSLayoutConstraints的IBOutletCollection为两个集设置),我需要在界面生成器中禁用我已经定义的布局约束。让我在这里明确一点,我不想删除它们,只是禁用它们,这样我就可以设计第二个集合,而无需界面构建器一直提示不匹配的约束。此外,切换尺码类别不是一种选择,因为布局集适用于一个且相同的尺码类别。是否有这样做的选项?提前致谢马尔特更多信息:SDK版
我已经使用代码以编程方式实现了AutoLayout:-(void)addConstraintWithListNavigationViewController:(UIView*)listViewNavigationy:(CGFloat)yheight:(CGFloat)height{//WIDTH_ListTableView=0.4//setx=0;NSLayoutConstraint*constraintToAnimate1=[NSLayoutConstraintconstraintWithItem:listViewNavigationattribute:NSLayoutAttribu
我的应用程序中有一个IBOutletNSLayoutConstraint。很简单:@property(nonatomic,weak)IBOutletNSLayoutConstraint*leftConstraint;在某些时候我想停用这个约束:self.leftConstraint.active=NO;它发生在从cellForRowAtIndexPath:调用的方法中。约束在上面一行之后变为nil。但是,如果我将此属性声明为strong那么没关系,它不会变为nil。谁能解释为什么会这样? 最佳答案 当您的socket弱时,唯一的强引