我有一个tableCell。在单元格中,我有一个背景颜色的UIVIew。
我想根据数据更改UIView的宽度。
在cellForRowAtIndexPath
中,我添加了以下行来更改视图的宽度。
//set the frame of the bar
CGRect rect = cell.barView.frame;
rect.size.width = myViewWidth;
cell.barView.frame = rect;
这对设置名为barView
的UIVIew的宽度没有任何影响。
barView
在单元格中设置了以下约束。
如何让barview调整大小?
P.S。我在cellForROwAtIndexPath
答案 0 :(得分:0)
为视图宽度创建约束并链接到单元格内的IBOutlet。
@interface historicoTableViewCell : UITableViewCell
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *lauguraFaixa;
在cellForRowAtIndexPath中根据需要更改此约束。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
historicoTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
if (cell == nil) {
cell = [[historicoTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"];
}
int duracao = [self duracao:[[self.periodos objectAtIndex:indexPath.row] inicio] data:[[self.periodos objectAtIndex:indexPath.row] fim]];
int diasMaximos = 9;
int larguraMinima = 100;
int larguraMaxima = 300;
int largura = larguraMinima+((larguraMaxima-larguraMinima)/diasMaximos * duracao);
cell.lauguraFaixa.constant = largura;
return cell;
}