草庐IT

AutoLayout

全部标签

ios - 如何将 UIScrollView 'main' 内容设置为屏幕高度 - 'secondary' 内容 'below the fold'

一段时间以来,我一直在用头撞墙。我有一个单View应用程序,它的主要内容显示在ScrollView中-最初是为了可以轻松实现下拉刷新。这是使用Storyboard和AutoLayout约束工作和实现的。我有一个新功能想要实现,但我不希望它始终可见,我希望它显示在ScrollView中“主要”内容的下方。这样,用户必须滚动主视图才能看到额外的内容。我制作了一个小图表,希望能比文字更好地表达这一点:我试过将次要内容简单地放置在最后一个主要内容block的下方,并带有垂直约束-这让您可以滚动到它,但一旦您松开,ScrollView就会回到原来的位置。非常欢迎任何有关如何解决此问题的提示,谢谢

ios - SnapKit 和动态 UITableViewCell 布局不正确

我目前正在构建一个可重用的View,它利用了UITableView为其单元格提供的动态调整大小。我想要实现的是根据在结构中定义的size属性中给定的大小为单元格内的View提供宽度和高度,我通过使用配置函数传递它,在设置View的大小之后。然后我将其置于xAxis中心并使用结构中的一个属性在View周围应用任何边距,该属性只是一个UIEdgeInset属性。使用SnapKit库看起来像这样。ifletformImageItem=formImageItem,letsize=formImageItem.size{formItemImgVw=UIImageView(frame:CGRect(

ios - 为显示的 ViewController 设置约束

我正在将ViewController推到我当前的ViewController之上。我想推送的ViewController是一个WebView,但我想这无关紧要。我不希望呈现的ViewController位于状态栏下方。但是我该如何设置这些约束呢?这是我加载推送的ViewController的代码:@objcfuncloadWebView(sender:UIButton){letvc=WebViewVC()webViewVC=vcself.present(webViewVC!,animated:true,completion:nil)}如果我为webViewVC.view设置与父View

ios - UILabel 子类在使用约束时不显示

我已经创建了一个子类来管理我的主题,但在设备或模拟器上都没有显示。这是我的Header.swift:importFoundationimportUIKitclassHeader:UILabel{overridevartextColor:UIColor!{//WhiteColorget{returnThemeManager.currentTheme.palette.primary}set{}}overridevarfont:UIFont!{get{returnThemeManager.currentTheme.textStyle.headerText}set{}}}这里的实现:(在vie

ios - 如何在一行内垂直对齐两个 UILabel?

我试图将两个UILabel放在一行中:一个UILable在左侧,文本左对齐,一个UILabel在右侧,文本右对齐。请看上图。它们有不同的字体大小。我使用了以下自动布局约束:letlabelHorizontalConstrains=NSLayoutConstraint.constraints(withVisualFormat:"H:|-20-[nameLabel]-15-[birthDeathDateLabel]-20-|",metrics:nil,views:views)allConstraints+=labelHorizontalConstrains但结果显示它们不是垂直对齐的:左边

ios - 在代码中设置 IBOutlet 的自动布局约束

如果我有一个IBOutlet的UILabel,为什么我不能在代码中设置它的自动布局约束,而不必在Storyboard中设置至少一个约束?例如,假设我有一个在Storyboard中没有设置约束的IBOutletUILabel,我尝试将它放在superview的中心:overridefuncviewDidLoad(){super.viewDidLoad()self.label.setTranslatesAutoresizingMaskIntoConstraints(false)self.label.centerInSuperview()}然后我有一个UIView扩展来处理自动布局代码如下:

uitableview - UITAbleViewCell 中具有动态高度的多个 UILabel

在一个空的UITableViewCell中,我有两个UILabel对齐方式如下:|--label1----label2--|。两者都将动态填充。我需要设置约束,使两个标签都保持居中对齐,但单元格的高度由具有最多内容的标签确定。到目前为止:标签的行数设置为0在ViewDidLoad中:tableView.rowHeight=40.0tableView.estimatedRowHeight=40.0UITableViewDelegate方法:functableView(tableView:UITableView,heightForRowAtIndexPathindexPath:NSInde

ios - 使用 AutoLayout 以编程方式创建 UICollectionView

我正在尝试使用AutoLayout以编程方式创建UICollectionView,但我遇到了一些问题。第一次测试:在我的第一次尝试中,我创建了一个UICollectionView作为Lazyvar并将其添加到viewDidLoad中,如下所示:lazyvarcollection:UICollectionView={letcv=UICollectionView()cv.translatesAutoresizingMaskIntoConstraints=falsecv.setCollectionViewLayout(self.flowLayout,animated:true)cv.data

ios - 在运行时在 Swift 中更改受自动布局约束的 UIView 的框架

例如,我使用此代码更改名为Propo的UIView的框架位置:self.Propo.frame.origin.x-=self.view.frame.width(Propo在Storyboard中有约束)但是当应用View消失并重新出现时,UIView会将自身重置到其原始位置。我该怎么做才能解决它?我希望UIView在我以编程方式更改它时保持其位置。我已经通过任何其他方式尝试了updateViewConstraints()... 最佳答案 约束和手动帧操作是直接冲突的。你必须选择一个或另一个。您应该改为“提升”您希望更改的约束,方法是

swift - 如果禁用滚动,您能否根据显示的行数更新 UITableView 的固有内容大小?

我们的UI有一部分是一小部分标签,旁边有色样。我接手的设计中有六个硬编码在布局中,即使实际数据是动态的,这意味着如果我们只需要显示三个,我们必须明确隐藏三个,这也会破坏页面的平衡.更糟糕的是,这些“项目”中的每一个实际上都由多个subview组成,因此具有6个硬编码项目的屏幕有18个IBOutlet。我想做的是用UITableView来表示屏幕的这一小部分,因为它不会滚动,我想知道你是否可以使用AutoLayout来配置UITableView的固有内容高度基于行数。目前我有一个测试页面,其中UITableView垂直限制在中心,但没有高度限制,因为我希望表格的固有内容大小反射(refl