3

スクリーンショット

ここに表示されている UILabel をオーバーレイ内の水平方向と垂直方向の中央に配置し、オーバーレイ UIView (流行に敏感な lorem ipsum テキストの背後にある明るいアルファを持つ黒い領域) のサイズを変更して、10 ピクセルのパディングを提供したいと考えています上部と下部ですが、それでも幅は自動ストレッチされます。誰でも私を正しい方向に向けることができますか? できるだけダイナミックにしたい。

これを次のように表示する必要があります。

    descView = [[UIView alloc] initWithFrame:CGRectMake(0, 64, self.view.bounds.size.width, 160)];
    descView.autoresizingMask = UIViewAutoresizingFlexibleWidth;
    descView.backgroundColor = [UIColor colorWithWhite:0 alpha:0.5];

    descLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 600, 120)];
    descLabel.center = CGPointMake(self.view.bounds.size.width/2, descView.bounds.size.height/2);

    descLabel.backgroundColor = [UIColor clearColor];
    descLabel.opaque = NO;
    descLabel.textAlignment = UITextAlignmentCenter;

    descLabel.text = currentPhoto.desc;
    descLabel.numberOfLines = 5;

    descLabel.textColor = [UIColor whiteColor];
    descLabel.autoresizingMask = UIViewAutoresizingFlexibleMargins;

    CGRect frame = descLabel.frame;
    frame.origin.x = (descView.frame.size.width - descLabel.frame.size.width)/2;

    descLabel.frame = frame;

    [self.view addSubview:descView];
    [descView addSubview:descLabel];
4

1 に答える 1

2

https://gist.github.com/2596057を使用します(それは Marco Arment のサブクラス化された UILabel です)

(または) resizeHeightToFitText メソッドのコードを使用して、hte IPInsetLabel を使用せずに同じことを行うことができます

ラベルがテキストに合わせてサイズ変更されたら、高さと幅に基づいてラベルの原点を設定します

于 2012-05-18T20:28:50.113 に答える