大佬教程收集整理的这篇文章主要介绍了ios – systemLayoutSizeFittingSize:在UILabel上的行为不像预期的那样,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这是一个快速Playground的代码,它演示了行为,但它在Objective-C中是相同的:
import UIKit import Foundation var label = UILabel() label.text = "This is a Test Label Text" label.numberOfLines = 0 label.font = UIFont.preferredFontForTextStyle(UIFontTextStyleBody) label.preferredMaxLayoutWidth = 40 let layoutSize = label.systemLayoutSizeFitTingSize(UILayoutFitTingCompressedSizE) let intrinsicSize = label.intrinsicContentSize()
我原以为layoutSize和intrinsicSize是一样的.
但在这种情况下,layoutSize是(w 173,h 20)而intrinsicSize是(w 40,h 104)
我希望两者都是intrinsicSize但似乎systemLayoutSizeFitTingSize:忽略preferredMaxLayoutWidth
有人能够向我解释一下吗?
编辑:
也
label.setNeedsLayout() label.layoutIfNeeded() let layoutSize = label.systemLayoutSizeFitTingSize(UILayoutFitTingCompressedSizE) let intrinsicSize = label.intrinsicContentSize()
不会改变结果
//This code assume you have a UILabel as IBOutlet named testLabel with two consTrains // to center the view,then in "viewDidLoad:" self.testLabel.text =@"This is a Test Label Text"; self.testLabel.font = [UIFont preferredFontForTextStyle:(UIFontTextStyleBody)]; self.testLabel.numberOfLines = 0; self.testLabel.preferredMaxLayoutWidth = 40; CGSize layoutSize1 = [_testLabel systemLayoutSizeFitTingSize:UILayoutFitTingCompressedSize]; CGSizE intrinsicSize1 = [_testLabel intrinsicContentSize]; NSLog(@"\nlayout:%@\nintrinsicSize:%@",NSStringFromCGSize(layoutSize1),NSStringFromCGSize(intrinsicSize1));
对于这种情况,输出是:
2015-01-29 01:00:46.265 test[31327:911898] layout: {38.5,130.5} intrinsicSize:{38.5,130.5}
以上是大佬教程为你收集整理的ios – systemLayoutSizeFittingSize:在UILabel上的行为不像预期的那样全部内容,希望文章能够帮你解决ios – systemLayoutSizeFittingSize:在UILabel上的行为不像预期的那样所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。