gpt4 book ai didi

ios - 修改使用 viewWithTag 选择的单元格元素的框架不起作用

转载 作者:行者123 更新时间:2023-11-29 10:57:15 26 4
gpt4 key购买 nike

我在 Storyboard中有一个带有自定义单元格的表格 View

单元标识符是:MyCustomCellIdentifier

标签的框架是:{ { 15.0f, 178.0f }, { 280.0f, 40.0f } }

我基本上想根据文本的大小更改 UILabel 的框架。

假设我的 UILabel 在我的 StoryBoard 中被标记为:1

在函数中:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyCustomCellIdentifier"];
UILabel *myLabel = [(UILabel *)[cell viewWithTag:1];

NSLog(@"frame %@", NSStringFromCGRect(myLabel.frame)); //frame {{0, 295}, {0, 0}}
myLabel.text = @"myText";

CGSize maximumLabelSize = CGSizeMake(FLT_MAX, myLabel.frame.size.height);
CGSize expectedLabelSize = [myLabel.text sizeWithFont:myLabel.font constrainedToSize:maximumLabelSize lineBreakMode:NSLineBreakByTruncatingTail];
CGRect newFrame = myLabel.frame;
newFrame.size.width = expectedLabelSize.width;
myLabel.frame = newFrame;
NSLog(@"frame %@", NSStringFromCGRect(myLabel.frame)); //frame {{0, 295}, {80, 0}}

return cell;
}

为什么有那些 0 值而不是 Storyboard中的实际值?如何初始化标签的框架以具有正确的值?

为什么如果我以编程方式设置值,它不会更改显示的标签框架?

当我向下滚动并返回到前一个单元格时,它实际上显示了正确的帧,但不是在第一次显示时。

最佳答案

这是启用自动布局的结果(默认情况下启用)。要修复它,您可以关闭自动布局,或者使用约束而不是设置框架来更改标签的大小。我不清楚你为什么要尝试以这种方式设置标签的宽度——如果你只是在 IB 中将它设置为“大小以适合内容”,它会自动调整大小以适合文本(无论如何在宽度方向).

关于ios - 修改使用 viewWithTag 选择的单元格元素的框架不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17656400/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com