从 UIStackView 中缺少的代码添加的 UITextView

     2023-02-26     268

关键词:

【中文标题】从 UIStackView 中缺少的代码添加的 UITextView【英文标题】:UITextView added from code missing in UIStackView 【发布时间】:2015-11-03 11:04:18 【问题描述】:

我正在尝试以编程方式将UITextView 添加到UIStackView,但它没有出现在屏幕上。

当我签入 Debug View Hierarchy 时,它位于视图层次结构中,并且有一些约束,但不会显示在输出的视图中。

这是我的代码:

let stackView = UIStackView()

let textView = UITextView()
let button = UIButton()

stackView.axis = .Horizontal
stackView.spacing = 20
stackView.distribution = UIStackViewDistribution.Fill

button.setImage(UIImage(named:"image1"), forState: .Normal)
button.setImage(UIImage(named:"image2"), forState: .Selected)


textView.textAlignment = NSTextAlignment.Left
textView.textColor = UIColor.blackColor()
textView.editable = true
textView.text = ""

stackView.addArrangedSubview(textView)
stackView.addArrangedSubview(button)

按钮添加得很好。但我找不到正确显示 TextView 的方法!尝试添加如下所示的宽度/高度约束,但效果不佳或效果不佳(取决于变体):

let widthConstraint = NSLayoutConstraint(item: textView,
                 attribute: NSLayoutAttribute.Width,
                 relatedBy: NSLayoutRelation.Equal,
                 toItem: stackView,
                 attribute: NSLayoutAttribute.Width,
                 multiplier: 1,
                 constant: 0)
stackView.addConstraint(widthConstraint)
let heightConstraint = NSLayoutConstraint(item: textView, attribute:   NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: stackView, attribute: NSLayoutAttribute.Height, multiplier: 1, constant: 0)
stackView.addConstraint(heightConstraint)

但是,当我添加 UITextField,而不是 UITextView 时,它可以正常工作,没有任何限制。

【问题讨论】:

您是否尝试将 textView 的背景颜色设置为白色?通常背景颜色设置为clearColor。 是的。不幸的是,背景不是问题。请参阅下面的解决方案 【参考方案1】:

UITextViewUIScrollView 的子类,因此它的大小在UIStackVIew 内部是不明确的。为了使大小明确,您可以根据其内容调整自身大小 - 即,使其不可滚动。 那么简单的解决方案是:

textView.isScrollEnabled = false

(Swift 3.0 语法)

【讨论】:

【参考方案2】:

我知道缺少什么。我不能使用指定的初始值设定项,因为我不知道要在其中创建它的类中文本视图的帧大小。

但这有帮助 - 在上面的代码中的 stackView.distribution 之后添加这一行:

 self.alignment = UIStackViewAlignment.Fill

【讨论】:

【参考方案3】:

尝试使用

init(frame frame: CGRect,textContainer textContainer: NSTextContainer?)

因为它是 UITextView 的指定初始化程序。

【讨论】:

如何以编程方式将笔尖添加到 UIStackView

】如何以编程方式将笔尖添加到UIStackView【英文标题】:HowtoaddnibstoaUIStackViewprogrammatically【发布时间】:2018-07-2812:29:23【问题描述】:我正在尝试将任意数量的视图从笔尖添加到UIStackView中。问题是,比如说,如果只包含一个视... 查看详情

以编程方式清空 UIStackView

】以编程方式清空UIStackView【英文标题】:ProgrammaticallyemptyingUIStackView【发布时间】:2021-06-2307:41:44【问题描述】:我有一个相当简单的代码,在单击按钮时,将随机颜色的UIView添加到UIStackView,并在单击不同的按钮时,从UIStackVi... 查看详情

从 UIStackView 获取 View 的索引

】从UIStackView获取View的索引【英文标题】:GetView\'sindexfromUIStackView【发布时间】:2018-09-1915:50:28【问题描述】:我在stackview中添加了2个不同大小的视图。现在,当我单击任何视图的加号按钮时,我只想在其正下方添加一个视图... 查看详情

以编程方式未添加到 UIStackView 的元素?

】以编程方式未添加到UIStackView的元素?【英文标题】:ElementsnotaddingtoUIStackView,programmatically?【发布时间】:2021-02-1608:50:32【问题描述】:我试图在LivePlayground中创建一个排序可视化工具,所以我创建了一个堆栈视图,但是当我... 查看详情

如何在 UIScrollView 中添加 UIStackView

】如何在UIScrollView中添加UIStackView【英文标题】:HowtoaddUIStackViewinsideanUIScrollView【发布时间】:2016-04-1121:38:09【问题描述】:我有一个UIScrollView,它有一个UIStackView,里面有三个对象(标签、图像和标签)如何让滚动视图与堆栈... 查看详情

如何在 UIStackview 中添加和删除 UILabel

】如何在UIStackview中添加和删除UILabel【英文标题】:HowtoaddandremoveUILabelsinUIStackview【发布时间】:2019-07-2811:35:01【问题描述】:我想在UIStackview中添加和删除UILabel。添加的UILabel的数量将取决于字符串的长度(例如,如果字符串是... 查看详情

以编程方式在 UIStackView 中添加视图

】以编程方式在UIStackView中添加视图【英文标题】:AddviewsinUIStackViewprogrammatically【发布时间】:2015-08-2400:52:04【问题描述】:我正在尝试。现在我的代码是:UIView*view1=[[UIViewalloc]init];view1.backgroundColor=[UIColorblackColor];[view1setFrame:CGR... 查看详情

以编程方式将一堆自定义视图从 XIB 添加到 UIStackView

】以编程方式将一堆自定义视图从XIB添加到UIStackView【英文标题】:programmaticallyaddabunchofcustomviewfromXIBtoUIStackView【发布时间】:2015-11-0118:01:18【问题描述】:我有一个TagDisplayCell.xib和关联的TagDisplayCell.m。在.m文件中,我像这样加... 查看详情

无法从“UIStackView”中删除轴动画

】无法从“UIStackView”中删除轴动画【英文标题】:Unabletoremoveaxisanimationfrom`UIStackView`【发布时间】:2017-04-0207:11:18【问题描述】:我有一个UIStackView内置界面构建器,当它的超级视图从纵向旋转到横向时,它会将其axis属性从verti... 查看详情

UIStackView:添加相同宽度的排列视图

】UIStackView:添加相同宽度的排列视图【英文标题】:UIStackView:addarrangedviewswiththesamewidth【发布时间】:2017-06-0912:05:02【问题描述】:我有UIStackView并想在这个视图中添加一些排列的视图......有时是一个,有时是两个,三个......等... 查看详情

如何通过代码在方向更改时添加对 UIStackView.Axis 的更改?

】如何通过代码在方向更改时添加对UIStackView.Axis的更改?【英文标题】:HowdoIbycodeaddachangetoUIStackView.Axisonorientationchange?【发布时间】:2015-09-1712:59:06【问题描述】:我有几个UIStackView,我以编程方式添加,我希望他们有另一个Axi... 查看详情

UIStackView - 排列的视图重叠

】UIStackView-排列的视图重叠【英文标题】:UIStackView-arrangedviewsareoverlapping【发布时间】:2020-04-2904:09:10【问题描述】:过去几个小时我一直在努力将自定义视图添加到UIStackView。StackView放置在UIScrollView内,并为ScrollView的每个边距... 查看详情

UIStackView 未按预期显示

】UIStackView未按预期显示【英文标题】:UIStackViewnotshowingasexpected【发布时间】:2018-10-1307:45:49【问题描述】:我想在我的应用中添加一个UIStackView的登录按钮,所以我添加了以下代码:overridefuncviewDidLayoutSubviews()super.viewDidLayoutSubv... 查看详情

子视图的 UIStackView 不滚动

】子视图的UIStackView不滚动【英文标题】:UIStackViewofsubviewsnotScrolling【发布时间】:2016-08-2422:25:16【问题描述】:我有一个UIScrollView,我在其中添加了一个UIStackView的子视图。子视图不可滚动,但如果我添加按钮而不是UIView,则... 查看详情

如何从一个表中添加另一个表中缺少的记录:MS Access

】如何从一个表中添加另一个表中缺少的记录:MSAccess【英文标题】:HowdoIaddrecordsfromonetablemissinginanothertable:MSAccess【发布时间】:2013-11-0706:11:45【问题描述】:好的,这应该很容易。例如,我有一个表(表1)填充了以下记录:Ac... 查看详情

如何添加具有特定边界的空白 UIImageView 作为 UIStackView 的子项?

】如何添加具有特定边界的空白UIImageView作为UIStackView的子项?【英文标题】:HowtoaddblankUIImageViewwithcertainboundsasachildofUIStackView?【发布时间】:2016-08-0904:07:53【问题描述】:谁能告诉我在UIStackView中添加具有特定高度的空白UIImageVi... 查看详情

UIStackView 中的图像未四舍五入

】UIStackView中的图像未四舍五入【英文标题】:ImagesnotbeingroundedinUIStackView【发布时间】:2018-09-1313:14:37【问题描述】:我正在尝试对几张图像进行四舍五入并将它们添加到堆栈视图中,但由于某种原因它无法正常工作。基本上,... 查看详情

将layoutmargins添加到uistackview中的一个元素(代码片段)

我想创建一个包含3个元素的垂直堆栈视图。我想在第二个和最后一个元素之间留出更多的空间。所以我想添加到最后一个元素:mylastelement.layoutMargins=UIEdgeInsets(top:30,left:0,bottom:0,right:0)但layoutmargins不适用于我的stackview。有没有简... 查看详情