Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何设置UILabel相对于单元格中图像的位置_Ios_Objective C_Uitableview_Uilabel - Fatal编程技术网

Ios 如何设置UILabel相对于单元格中图像的位置

Ios 如何设置UILabel相对于单元格中图像的位置,ios,objective-c,uitableview,uilabel,Ios,Objective C,Uitableview,Uilabel,我已经创建了一个自定义单元格,MatchCenterCell,在其中我创建了一个名为priceLabel的UILabel,它位于UITableView中的一个单元格内。当前的设置方式如下所示: - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { self = [super initWithStyle:style reuseIdentifier:reuse

我已经创建了一个自定义单元格,
MatchCenterCell
,在其中我创建了一个名为
priceLabel
UILabel
,它位于
UITableView
中的一个单元格内。当前的设置方式如下所示:

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        self.PriceLabel  = [[ UILabel alloc]initWithFrame:CGRectMake(90, 35, 70, 40)];
    }
    return self;
}
但是,这会导致问题,因为每个单元格的图像大小不同,因此x坐标为90意味着有时它会错位,如下面的“最佳匹配”标签所示:

如何使x坐标相对于
单元格.imageView
对齐
textlab
detailtextlab
上方的方式

您可以按注释中的建议使用,也可以按如下方式替代布局子视图:

- (void)layoutSubviews()
{
    [super layoutSubViews];
    self.detailTextLabel.y = 0;
    self.detailTextLabel.x = self.imageView.right + 10; 
    self.detailTextLabel.height = self.contentView.height;
    self.detailTextLabel.width = self.contentView.width - self.detailTextLabel.x;
}

上面使用的方法在进行自定义布局时添加了一些方便的方法

@rdelmar说了些什么。您可以直接向标签添加约束,以确保它相对于图像处于垂直和水平居中位置。但My
UITableView
是通过编程方式初始化的,而不是通过故事板。在这种情况下,我将如何使用自动布局?我将把您发布的代码放在哪里?您仍然可以通过编程方式使用auto layout,但上面的示例不是auto layout,而是覆盖自定义单元格中的LayoutSubView。