gpt4 book ai didi

ios - 运行时自动布局的 UIButton 大小

转载 作者:行者123 更新时间:2023-11-29 12:23:12 24 4
gpt4 key购买 nike

我发现了几个关于此的问题,但我还没有找到关于如何真正做到这一点的可靠答案,所以我希望这不是因为没有找到具体答案而重复。

这是我的问题:我正在重写一个旧的 iOS 应用程序,它有一个带有自定义单元格的表格 View ,并且在每个单元格内都有一个单一颜色的按钮。按钮的宽度是在运行时计算的,以显示每个单元格的每个按钮的宽度都不同,从而创建看起来像侧图表的内容。

我想/需要做同样的事情,但我的项目已经用自动布局完成了,我需要它在 iPhone 和 iPad 上都能工作,所以此时删除自动布局会有点痛苦。

由于自动布局,我的单元格布局受到约束,当所有单元格的宽度相同时它看起来很好,但我还没有想出一种方法让它在运行时改变它的宽度。

这也是另一个问题,来 self 在 SO 上找到的问题。

这是我的单元格在运行时的样子:

enter image description here

我需要中间的这个按钮(蓝色的东西)留在团队名称和值的中间,右边的值必须保持在相同的位置(所以不要向左移动如果条形非常小)。

如有任何关于此问题的建议,我们将不胜感激。谢谢!

最佳答案

给按钮同时设置centerX和centerY约束;这将使它保持在中间。给它一个固定的宽度,并为该约束创建一个 IBOutlet,这样您就可以在代码中更新它的常量值来修改条形的宽度。队名标签应该有一个约束到左边缘,值标签应该有一个约束到右边缘;这将使它们在所有屏幕尺寸上保持原位。

例如, TableView Controller 中的这段代码,

- (void)viewDidLoad {
[super viewDidLoad];
self.theData = @[@{@"name":@"One", @"value": @6094, @"width": @200}, @{@"name":@"Two", @"value": @210, @"width": @20}, @{@"name":@"Three", @"value": @7075, @"width": @250}, @{@"name":@"Four", @"value": @6648, @"width": @225}, @{@"name":@"Five", @"value": @2300, @"width": @100}, @{@"name":@"Six", @"value": @900, @"width": @50}];
[self.tableView reloadData];
}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return self.theData.count;
}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

RDTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
cell.leftLabel.text = self.theData[indexPath.row][@"name"];
cell.rightLabel.text = [NSString stringWithFormat:@"%@", self.theData[indexPath.row][@"value"]];
cell.widthCon.constant = [self.theData[indexPath.row][@"width"] floatValue];
return cell;
}

给出这个结果,

enter image description here

关于ios - 运行时自动布局的 UIButton 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29991781/

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