如何在tableview单元格iphone中设置textLabel的位置

时间:2012-01-30 08:44:43

标签: iphone objective-c xcode uitableview

  • 在我的表视图中,我使用的是UITableviewCEllStyleValue1:

 if (cell == nil) 
        {
            cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue2 reuseIdentifier:CellIdentifier] autorelease];

     cell.textLabel.text = @"Hai";
                cell.detailTextLabel.text = @"Hello";

        cell.detailTextLabel.textAlignment = UITextAlignmentLeft;
        cell.textLabel.textAlignment = UITextAlignmentLeft;
        return cell;

        }

  • 此处显示两个标签文本labe,detailTextLabel。

  • 但不在我想要的位置。

  • 我需要从单元格的起始位置显示Textlable(0,0),并且右侧位置是detailTextlabel,两个标签之间没有间隙。

  • 我需要一个不使用Allignment的解决方案。该怎么办?

3 个答案:

答案 0 :(得分:8)

创建自定义UITableViewCell子类并覆盖layoutSubviews方法。

答案 1 :(得分:0)

如果使用initWithStyle,NSTextAlignmentCenter可以正常工作:UITableViewCellStyleDefault。

答案 2 :(得分:-6)

您必须为此创建自定义单元格。像这样,

  在CustomCellTableViewCell.h文件中

#import <UIKit/UIKit.h>

@interface CustomCellTableViewCell : UITableViewCell
@property(nonatomic,strong)UILabel *lblUnit;
@end
in CustomCellTableViewCell.m file
#import "CustomCellTableViewCell.h"

@implementation CustomCellTableViewCell

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    self.userInteractionEnabled = YES;
    if (self) {
        // Initialization code
        self.lblUnit = [[UILabel alloc]init];
        [self.lblUnit setTextColor:[UIColor whiteColor]];
            [self.lblUnit setFont:[UIFont fontWithName:@"Roboto-Light" size:30.0f]];
       // [self.lblUnit setFont:[UIFont systemFontOfSize:18.0]];
        self.lblUnit.textAlignment = UIBaselineAdjustmentAlignCenters;
        self.lblUnit.adjustsFontSizeToFitWidth = YES;
        [self.contentView addSubview:self.lblUnit];
       }
    return self;
}

@end
in your Tableview CellForRowAtIndexpath write below code
      cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];

    if(cell==nil){
        cell = [[CustomCellTableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
    }

     cell.lblUnit.frame = CGRectMake(0, 10, 150, 40);
     cell.lblUnit.text = @"Hai";
     return cell;