ビューを相互に埋め込み (現在の場合は、画面のサイズよりも高いコンテンツを表示できるようにスクロールビューに)、iOS 6.0 の AutoLayout 機能を使用して、コンテンツのサイズが常に計算されるのを回避したいと考えています。
UIScrollView を含む次の ViewController のビューがあります。
このスクロールビューで ChildVC のビューを表示したいと思います。
ラベルは複数行で、「多くの」テキストが含まれていることに注意してください。また、自動レイアウトの制約も定義されています (特に、高さプロパティと同じかそれ以上)。
childVC を作成し、次のコードを使用してメイン VC のビューに追加します。
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
childVC = [[ChildVC alloc] initWithNibName:@"ChildVC" bundle:nil];
self.myScrollView.translatesAutoresizingMaskIntoConstraints = NO;
childVC.view.translatesAutoresizingMaskIntoConstraints = NO;
[self.myScrollView addSubview:childVC.view];
NSDictionary *viewsDictionary = @{ @"subView" : childVC.view};
NSString* constr = [NSString stringWithFormat:@"|-0-[subView(%f)]-0-|", self.myScrollView.frame.size.width];
[self.myScrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:constr options:0 metrics: 0 views:viewsDictionary]];
[self.myScrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[subView]-(>=0)-|" options:0 metrics: 0 views:viewsDictionary]];
}
コンテンツ ビュー (childVC のビューになると思います) の制約は、コードで設定されている唯一のものです。垂直スクロールバーのみが必要なため、子ビューのコンテンツを (水平に) 縮小して表示したいからです。スクロールビューア。
そして私の出力はこれです:
UI が表示され、縮小されますが、私のラベルは垂直方向にサイズ変更されないため、テキスト全体が表示されません :(
translatesAutoresizingMaskIntoConstraints をあちこちのラベルに設定しようとしましたが、成功しませんでした。
私は今これに何日も苦労しているので、助けていただければ幸いです:/