更新:
对不起,我之前描述的不够和不正确。
我做了一些这样的代码:
UIView *view = [[UIView alloc] initWithFrame:someFrame];
CGSize size = [view sizeThatFits:CGSizeMake(100, 100)];
但是当我观察 size 时,它什么也没有:{0, 0}。
我用错了吗?
即使我将初始帧传递给我的 View ,尺寸仍然没有返回任何内容。
我搜索了一些帖子,有人说 UILabel 也可能受到影响。
最佳答案
您的 View 不包含任何内容,也没有任何固有的内容大小,因此它的大小为零。
试试这些,你会发现它有效:
UILabel *label [UILabel new];
label.text = @"test test test test";
CGSize size = [label sizeThatFits:CGSizeMake(20, CGFLOAT_MAX)];
关于iOS API-sizeThatFits : does not work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39285380/
更新:对不起,我之前描述的不够和不正确。我做了一些这样的代码:UIView*view=[[UIViewalloc]initWithFrame:someFrame];CGSizesize=[viewsizeThatFits:CGSizeMake(100,100)];但是当我观察size时,它什么也没有:{0,0}。我用错了吗?即使我将初始帧传递给我的View,尺寸仍然没有返回任何内容。我搜索了一些帖子,有人说UILabel也可能受到影响。 最佳答案 您的View不包含任何内容,也没有任何固有的内容大小,因此它的大小为零。试试这些,你会
我正在尝试计算UITableViewCell的高度,所以我定义了一个看起来像这样的类方法+(CGFloat)heightWithText:(NSString*)text{SizingLabel.text=text;[SizingLabelsizeThatFits:CGSizeMake(LABEL_WIDTH,CGFLOAT_MAX)];return(TOP_MARGIN+SizingLabel.frame.size.height+BOTTOM_MARGIN);}我这样定义SizingLabel:+(void)initialize{SizingLabel=[[UILabelalloc]i
通过在layoutSubviews中计算和设置它们的框架来查看其subview的布局。ViewB使用约束来布局它的subview。ViewA包含多个ViewB实例。ViewA在布局subview时需要知道其subview的大小,因此它在它们上调用sizeThatFits:。ViewB的高度取决于它的宽度。在我的示例中,它内部有一个多行UILabel。B应该如何实现它的sizeThatFits:以便它返回正确的大小,同时将size参数传递给sizeThatFits:和帐户中的约束条件?到目前为止我已经尝试/考虑过的:systemLayoutSizeFittingSize:-不起作用,因为
当我在我的一个View上调用sizeToFit时,我注意到iOS框架首先调用sizeThatFits,然后在该View上调用layoutSubviews。这对我来说是有问题的,因为我的sizeThatFits中的计算取决于我的layoutSubviews的结果。在下面的示例中,subview在layoutSubviews中得到调整,并且此subview的高度在sizeThatFits中使用。目前我的代码无法正常工作,顺序已颠倒。在我的ViewController的viewDidLoad中:UIView*header=[[MyHeaderalloc]init];[headersizeTo
我有一个TextView和一个像这样的Viewletlb=UITextView()letview=UIView()background_img_view.addSubview(about_txt)lb没有固定的高度,可以是30或300px,如何使用sizeThatFits来调整background_img_view的高度取决于lb的? 最佳答案 试试这个://GetthewidthyouwanttofitletfixedWidth=textView.frame.size.width//Calculatethebiggestsizet
我正在尝试使用从sizeThatFits检索到的适当高度使UITextView垂直居中。有大量其他答案表明这是最合适的计算方法。(请注意,我已经对普通字符串和属性字符串都进行了尝试,并且都表现出相同的行为)。无论我尝试什么(甚至使用属性字符串并将字体大小或行高设置为更大或更小)它总是只显示一定数量的文本字符截断(在这种情况下,3行,并且它总是完全相同的)。我错过了什么?_textView.text=[_collectionDescriptionlowercaseString];_textView.font=[UIFontfontLight:22];_textView.textColor
我正在尝试使用从sizeThatFits检索到的适当高度使UITextView垂直居中。有大量其他答案表明这是最合适的计算方法。(请注意,我已经对普通字符串和属性字符串都进行了尝试,并且都表现出相同的行为)。无论我尝试什么(甚至使用属性字符串并将字体大小或行高设置为更大或更小)它总是只显示一定数量的文本字符截断(在这种情况下,3行,并且它总是完全相同的)。我错过了什么?_textView.text=[_collectionDescriptionlowercaseString];_textView.font=[UIFontfontLight:22];_textView.textColor