您如何以编程方式制作UIView,即其中的textLabels的高度?(在Swift中)

刘易斯·布莱克

我试图使每个包含不同的文本语句的UIViews(在UITextViews中)。视图的数量可以变化,每个语句的长度可以不同。我使用这些观点

let newView = DragView(heightOfView: ???, viewNumber: i, heightFromTop: currentHeightForThings)

然后,在DragView类中,我使用viewNumber访问该语句,并将该语句放在我创建的nib文件中的文本标签中。

我的问题是我没有要放入heightOfView的内容。我想要的高度是textLabel的高度,它取决于该语句的textView中有多少行。但是,由于textLabel尚未构建,因此无法访问此高度。

在此先感谢您,我是新手,但是想快速学习,因此,如果我缺少明显的内容,我深表歉意!


这是我在DragView类中的代码

class DragView: UIView {

    @IBOutlet var dragView: UIView!
    @IBOutlet weak var statementLabel: UITextView!

    var dropTarget: UIView?
    var viewNumber: Int!

    init(heightOfView: Int, viewNumber:Int, heightFromTop: Int) {
        self.viewNumber = viewNumber
        let startingPosition = CGRect(x: Int(widthCentre) - dragViewWidth / 2, y: heightFromTop, width: dragViewWidth, height: heightOfView)
        super.init(frame: startingPosition)

        NSBundle.mainBundle().loadNibNamed("DragView", owner: self, options:  nil)

        self.addSubview(self.dragView)
        let movingView = MovingView(frame: startingPosition)
        self.addSubview(movingView)
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }
}

在这里,movingView是一个子视图,我添加了该视图以移动该视图。

托马斯·晚上

您可以覆盖DragViewsizeThatFits方法,以使其基于的高度返回statementLabel高度。您必须首先调用sizeToFit,该textView控件将为该视图设置高度,然后根据该高度返回高度。

override func sizeThatFits(size: CGSize) -> CGSize {
    self.statementLabel.sizeToFit()
    return CGSize(
        width: self.frame.width, 
        height: self.statementLabel.frame.height)
}

此外,我会建议寻找到sizeThatFitslayoutSubviews,如果你打算做程序上的布局。子视图的大小和位置应该在layoutSubviews而不是在进行init

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

PercentRelativeLayout,如何以编程方式设置高度

如何以编程方式在Android中制作水平线

您如何以编程方式设置属性?

您如何以编程方式从存储在字符串中的日期创建模式?

如何以编程方式更新UIView的恒定高度约束?

您如何以编程方式在react-router中更新查询参数?

如何以编程方式获取AppBar的高度?

如何使用Swift以编程方式增加UIView的高度

如何以编程方式找到Swift的版本?

如何在Swift中以编程方式移动UIView

如何以编程方式设置AppBar高度?

如何以编程方式设置Recyclerview的高度?

您如何以编程方式在NavigationBar中更改UIVisualEffectView的Alpha?

Swift 4-如何以编程方式使用约束后获取UIView的边界

您如何以编程方式使用Radon

如何以编程方式在SegmentController中拟合图像-Swift

如何在不制作IBOutlet的情况下以编程方式在Swift中为UIView高度约束设置动画?

如何以编程方式设置Cardview高度?

Swift:如何以编程方式关闭ViewController?

如何以编程方式在Swift中扩展NSPopUpButton?

如何以编程方式更改stackView内部单个UIView的高度?

如何以编程方式在SQLite中创建多个表,即;通过iOS中的代码

您如何以编程方式制作此plist文件?

如何以编程方式设置视图的高度?

您如何以编程方式在乳胶/编织中创建子部分

如何以编程方式为iOS中的集合视图单元格提供宽度和高度,Swift 3

如何以编程方式更改UIImageView的高度?

如何以编程方式设置 UITableView 的高度

如何以编程方式隐藏 Swift 4 中的按钮