0

私はUITableView異なるサイズの画像を持っています。そのため、プログラムを実行していると、TableView のラベルの開始点が異なります。

すべてのラベルを同じポイントから開始したい。

アライメントがうまくいきません。すべてのラベルを左から一定の距離から開始したい。

そのための解決策はありますか?

4

3 に答える 3

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];
于 2013-02-25T10:07:32.803 に答える
0

UITableViewCell からクラスを派生させます。

メソッドをオーバーライドしlayoutSubviewsます。このメソッドでは、imageview、プライマリ ラベルなどのすべてのコンポーネントに適切なフレームを設定します。

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 からセルを作成する代わりに、上記のセルを使用します。

于 2013-02-23T12:08:29.260 に答える
0

画像のせいでラベルの位置が乱れている?

はいの場合、それを行うには 2 つの方法があります 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)];
于 2013-02-23T12:16:33.090 に答える