【问题标题】:UILabel sizeToFit in ScrollViewScrollView中的UILabel sizeToFit
【发布时间】:2016-05-30 22:02:56
【问题描述】:

我在 ScrollView 中遇到了 UILabel 的奇怪行为。我正在为 UILabel 分配动态文本并使用 sizeToFit,我可以记录分配文本后似乎正确更改的新大小,但我无法在模拟器和真实设备中看到更改后的大小。这是分配前和分配文本后的日志

--txt Frame {{15, 325}, {291, 36}}
--txt Frame1 {{15, 296}, {291, 446.5}}

如您所见,虽然我在设备和模拟器上看不到变化,但尺寸(高度)发生了变化。请帮忙。

【问题讨论】:

    标签: ios objective-c iphone uiscrollview uilabel


    【解决方案1】:

    尝试在 sizeToFit() 之后添加这个

        self.view.setNeedsLayout()
        self.view.layoutIfNeeded()
    

    override func viewWillLayoutSubviews() { self.myLabel.layoutIfNeeded() }

    【讨论】:

      【解决方案2】:

      在使用sizeToFit 方法之前,您是否为该标签设置了numberOfLines 属性。

      可能也是这个问题的原因。

      可能是标签框架发生了变化,但标签的numberOfLines 属性设置为 1,因此它只显示 1 行。

      尝试在使用sizeToFit方法之前设置行数属性,比如

      label.numberOfLines = 0;
      [label sizeToFit];
      

      这将为标签中任意数量的行设置所有文本。 希望对您有所帮助。

      【讨论】:

      • 我已经这样做了,但仍然无法正常工作。谢谢你的回答
      【解决方案3】:

      在尝试了不同的方法后,我最终自己在 IB 中手动扩展了 contentView 的高度。它不是最优雅的解决方案,但它现在可以工作:(

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-04-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-01
        • 1970-01-01
        相关资源
        最近更新 更多