ios - Uitableviewcell 中的 Uilabel 和 UIimageview

Posted

技术标签:

【中文标题】ios - Uitableviewcell 中的 Uilabel 和 UIimageview【英文标题】:ios - Uilabel & UIimageview in Uitableviewcell 【发布时间】:2013-02-19 08:56:33 【问题描述】:

我想在 iPhone 中使用以下类型的布局(使用 UItableview、Uitableviewcell、Uilabel 和 Uiimageview)。

(假设 浅蓝色圆点 == uiimageview

在每个 UItableviewcell 中,我有 1 个 UIimageview 和 1 个 Uilabel。 两个控件的起始灯是相同的左上角。 我的 uilabel 的内容是动态的,图片只是一张静态图片。

与 uilabel 的内容相比,图像非常小。 所以,我的图像垂直和水平居中。但我只想在左上角。

已编辑:

我已经在Uitableviewcell这样做了

但是如果 Uilabel 的行数是 2 或更多,那么 imageview 的位置就会改变。 它在垂直和水平方向居中。但我只希望图像视图在左上角位置是否 uilabel 的第 1、2、3 行....n

我的代码在这里:

    In CommonCustomeCell.m



- (id)initWithFrame:(CGRect)frame reuseIdentifier:(NSString *)reuseIdentifier 

self = [super initWithFrame:frame reuseIdentifier:reuseIdentifier];


if (self) 

 dotImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"dotPoint.png"]];

        dotImage.opaque = YES;

        [self.contentView addSubview:dotImage];

    titleName3 = [[UILabel alloc] init];

titleName3.textAlignment = UITextAlignmentLeft;       

titleName3.backgroundColor = [UIColor clearColor];

        titleName3.adjustsFontSizeToFitWidth = FALSE;

        titleName3.font = [UIFont systemFontOfSize:14];

        titleName3.textColor = [UIColor colorWithRed:17.0/255.0 green:72.0/255.0 blue:147.0/255.0 alpha:1];

        titleName3.lineBreakMode = NSLineBreakByWordWrapping;     

        [titleName3 sizeToFit];     

        [self.contentView addSubview:titleName3];



-(void)layoutSubviews



    frame = CGRectMake(20,2,self.bounds.size.width - 45 , self.bounds.size.height);   

    [titleName3 setFrame:frame];

 frame = CGRectMake(4,10,dotImage.frame.size.width,dotImage.frame.size.height);

    self.dotImage.frame = frame;




在 RootViewController.m 文件中

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

    

     CommonCustomeCell *cell = (CommonCustomeCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

                if (cell == nil)                 

                    cell = [[[CommonCustomeCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];

    

     [cell.dotImage5 setImage:[UIImage imageNamed:@"myLogo.png"]];

     cell.titleName3.text = [[myArr objectAtIndex:indexPath.row] objectForKey:@"title"];

    

    

帮助我,在此先感谢。

【问题讨论】:

创建自定义的 'UITableViewCell',并将 imageView 放置在您想要的任何位置。 你能在你的自定义单元格中显示创建 imageView 的代码吗? 我在这里添加了代码,请检查一下。 - (id)initWithFrame:(CGRect)frame reuseIdentifier:(NSString *)reuseIdentifier 已弃用,您应该使用- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 【参考方案1】: 使用Section和分组样式创建UITableView。 您的loarem Ipsm(文本)设置为Section标题。 并使用UIImageViewUILabel 创建UITableViewCell 自定义单元格以显示文本 “loarem Ipsm 是简单的假人”

【讨论】:

如果我的 Uilabel 的行数是 2 或更多,那么 imageview 的位置会改变。它垂直和水平居中。但我只希望图像视图位于左上角,无论是 uilabel 的第 1 行、第 2 行、第 3 行还是第 4 行等...【参考方案2】:

您是否为 CustomCell 视图设置了与下图相同的自动调整大小?只应启用顶部和左侧。

【讨论】:

@DhavalSodhaParmar 我理解你的问题。如果 customcell 视图自动调整设置为底部并且启用了右自动调整,则可能会发生这种情况。确保它应该与给定的图像相同。或者您可以设置图像视图的框架。例如[图像集帧:CGRectMake(0, 0, 167, 37)]; 但我没有使用 xib 文件,只使用了自定义类(父类:UITableviewCell)我必须为所有 ios 版本制作通用应用程序。

以上是关于ios - Uitableviewcell 中的 Uilabel 和 UIimageview的主要内容,如果未能解决你的问题,请参考以下文章

iOS - 无法访问 UITableViewCell 类中的 UITextView 委托

UITableViewCell 中的 ios 滑块操作

iOS - 圆圈中的图像(UITableViewCell)

iOS 8 中的 UITableViewCell 约束在 iOS7 中不起作用

iOS - UITableViewCell 中的 UIGestureRecognizer 类似于 Snapchat

iOS + Swift 2:UITableViewCell 中的动态高度不适用于空视图