更改自定义表格视图单元格按钮的框架

时间:2015-10-11 17:32:44

标签: ios objective-c uitableview

在我的应用程序中,我在UITableView中显示待售商品列表。如果用户没有设置项目的描述,我想调整单元格中某些元素的位置以调整空白标签。

我的cellForRowAtIndexPath中的以下代码无效。

cell.productName.text = product.fields[@"title"];
cell.productPrice.text = product.fields[@"price"];
cell.productDescription.text = vehicle.fields[@"salespersonComments"];

if ([cell.productDescription.text isEqualToString:@""]) {

    CGRect f = cell.favoriteButton.frame;
    f.origin.y = 10; // new y
    cell.favoriteButton.frame = f;

} else {

}

2 个答案:

答案 0 :(得分:0)

//You have to use the UITableView delegate methods
//Method for displaying the cell
- (UITableViewCell *)tableView:(UITableView *)tableView
             cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        static NSString *MyIdentifier = @"MyIdentifier";

        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];

        if (cell == nil)
        {
            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
                                           reuseIdentifier:MyIdentifier];
        }

    }

//Method for adjusting the cell height
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{

        return 80;

}

答案 1 :(得分:-1)

最好将IBOutlets连接到相关的NSLayoutConstraint,而不是实际更改项目的协调/框架。

然后你可以这样做:

if ([cell.productDescription.text isEqualToString:@""]) {
    cell.favoriteButtonWidthConstraint.constant = 0;
    cell.leadingIndentConstraint.constant = 0;

} else {

}