3

私は見解を持っています:

私の見解

label1とlabel2の間にはレイアウトの制約があります。ボタンを押すと、テキストビューからlabel1にテキストが追加されます。その後、ラベル1はテキストに合わせてサイズ変更されます(sizeToFitが呼び出されます)。サイズを変更した後、制約が機能しないように見えます。

制約

誰かが制約を機能させる方法を知っていますか?

私のクーデ:

@interface ViewController ()
{
    CGFloat _width;
}
@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
}

- (void) viewDidAppear:(BOOL)animated
{

    _width = self.l1.frame.size.width;
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
- (IBAction)addText:(id)sender {
    self.l1.text = [NSString stringWithFormat:@"%@ %@", self.l1.text, self.text.text];
    self.l1.frame = CGRectMake(self.l1.frame.origin.x, self.l1.frame.origin.y, _width, 0);
    [self.l1 sizeToFit];
}
@end
4

2 に答える 2

4

私は理由を見つけました:高さの制約がラベル1の40に等しい。それ以上に変更すると、他のすべての制約は問題なく機能します。

于 2012-10-19T12:03:58.453 に答える
0

UIImageViewがいくつかのUILabelViewの上部にあるという同様の問題がありました。制約は、上の画像と下のラベルのスタックの間に小さな距離を保つように設定されました。

問題は、不明な画像サイズをUIImageにロードすると高さが変化するが、続くラベルが押し下げられず、画像で覆われることでした。

UIImageViewの設定された高さを削除しようとしましたが、XCodeでは削除できませんでした。

明示的なUIImageviewの高さ制約の優先度を1に下げることで、この問題を解決しました。

その後、予想どおり、ラベルは画像とそれ自体の間に均等なスペースを置いてViewControllerを下に移動しました。

于 2013-07-10T14:29:53.140 に答える