1

免責事項として、UITextFields の下部に 2 行の UILabel を配置したいと考えています。

に次のコードがありますviewDidLoad

    UILabel *InstapaperSubscriptionLabel = [[UILabel alloc] init];

    InstapaperSubscriptionLabel.translatesAutoresizingMaskIntoConstraints = NO;
    InstapaperSubscriptionLabel.text = @"Requires an Instapaper subscription, please see the Instapaper website for more details.";
    InstapaperSubscriptionLabel.numberOfLines = 2;
    InstapaperSubscriptionLabel.lineBreakMode = NSLineBreakByWordWrapping;
    InstapaperSubscriptionLabel.preferredMaxLayoutWidth = self.view.bounds.size.width - 40;
    InstapaperSubscriptionLabel.textAlignment = NSTextAlignmentCenter;
    InstapaperSubscriptionLabel.backgroundColor = [UIColor clearColor];
    InstapaperSubscriptionLabel.textColor = [UIColor colorWithRed:112/255.0 green:112/255.0 blue:111/255.0 alpha:1.0];
    InstapaperSubscriptionLabel.font = [UIFont systemFontOfSize:14.0];

    [self.view addSubview:InstapaperSubscriptionLabel];

    [self.view addConstraint:[NSLayoutConstraint constraintWithItem:InstapaperSubscriptionLabel
                                                 attribute:NSLayoutAttributeTop
                                                 relatedBy:NSLayoutRelationEqual
                                                 toItem:self.passwordBox
                                                 attribute:NSLayoutAttributeBottom
                                                 multiplier:1.0
                                                 constant:15.0]];

    [self.view addConstraint:[NSLayoutConstraint constraintWithItem:InstapaperSubscriptionLabel
                                                 attribute:NSLayoutAttributeLeading
                                                 relatedBy:NSLayoutRelationEqual
                                                 toItem:self.view
                                                 attribute:NSLayoutAttributeLeft
                                                 multiplier:1.0
                                                 constant:20.0]];

    [self.view addConstraint:[NSLayoutConstraint constraintWithItem:InstapaperSubscriptionLabel
                                                 attribute:NSLayoutAttributeTrailing
                                                 relatedBy:NSLayoutRelationEqual
                                                 toItem:self.view
                                                 attribute:NSLayoutAttributeRight
                                                 multiplier:1.0
                                                 constant:20.0]];

しかし、ビューをロードするたびに、次のようになります。

ここに画像の説明を入力

画面の端からはみ出すところ。なぜこれを行うのですか?もっと中心にしたい。

4

1 に答える 1

2

質問に表示する最後の制約の定数は、20 ではなく -20 にする必要があると思います。そのコードで言っていることは次のとおりです。

label Trailing = superview right * 1 + 20 これにより、ラベルの後端が画面から 20 ポイント右にずれます。

于 2013-07-28T17:09:12.693 に答える