如何在UITableview中对齐Label?

时间:2013-02-23 11:57:37

标签: ios ios5 ios6 ios4 ios-simulator

我有UITableView我有不同大小的图像。因此,当我运行程序时,我在TableView中获得了不同的标签起点。

我希望所有标签都从同一点开始。

对齐不适合我。我希望所有标签都从左边一定距离开始。

有没有解决方案?

3 个答案:

答案 0 :(得分:0)

从UITableViewCell派生一个类。

重写方法layoutSubviews。在此方法中,为imageview,primary label等所有组件设置适当的帧。

CustomCell.h

@interface CustomCell : UITableViewCell
{

}

@end

CustomCell.m

@implementation CustomCell

    -(void) layoutSubviews
    {
         [super layoutSubviews];
        self.imageView.frame = SOME_FRAME;
        self.textLabel.frame = SOME_OTHER_FRAME;

    }

@end

现在不使用cellForRowAtIndexPath中的UITableViewCell创建单元格,而是使用上面的单元格。

答案 1 :(得分:0)

由于图像,标签位置是否受到干扰?

如果是,则有两种方法可以做到 1

  

[imgView setContentMode:UIViewContentModeScaleToFill]

2你应首先获得图像视图的宽度,然后添加一些空间因子,然后为你的uilabel设置合适的起点。

UILabel *lbl = ...;
UIImageView * imgView = ....;
CGRect lblFrame = lbl.frame;
lblFrame.origin.x = imgView.frame.origin.x + imgView.frame.size.width + 10;
[lbl setFrame:lblFrame];

编辑:

如果调整uiimage大小不是问题,那么调整图像大小......

+ (UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize {
    //UIGraphicsBeginImageContext(newSize);
    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
    [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();    
    UIGraphicsEndImageContext();
    return newImage; }
  

块引用

> [CLASSNAME imageWithImage:yourImage scaledToSize:CGSizeMake(50,50)];

答案 2 :(得分:0)

试试这段代码,它在UiTableView中对齐UILabel非常有用: UILabel * label = [[UILabel alloc] init];

    label.frame=CGRectMake(80, 2, 180, 60);

    label.backgroundColor=[UIColor clearColor];

    label.text=[ShopListOfItems objectAtIndex:indexPath.row];

    label.textColor=[UIColor whiteColor];

    label.font=[UIFont boldSystemFontOfSize:20];

    label.numberOfLines=2;

    [cell.contentView addSubview:label];