// Copyright 2014 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #import #import "DynamicResizingViewController.h" @interface DynamicResizingViewController () @end @implementation DynamicResizingViewController {} - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor systemBackgroundColor]; self.title = @"Dynamic Content Resizing"; UIScrollView *scrollView = [[UIScrollView alloc] init]; scrollView.translatesAutoresizingMaskIntoConstraints = NO; [self.view addSubview:scrollView]; UIStackView *stackView = [[UIStackView alloc] init]; stackView.translatesAutoresizingMaskIntoConstraints = NO; stackView.axis = UILayoutConstraintAxisVertical; stackView.spacing = 10; [scrollView addSubview:stackView]; [NSLayoutConstraint activateConstraints:@[ [scrollView.topAnchor constraintEqualToAnchor:self.view.safeAreaLayoutGuide.topAnchor], [scrollView.leadingAnchor constraintEqualToAnchor:self.view.leadingAnchor], [scrollView.trailingAnchor constraintEqualToAnchor:self.view.trailingAnchor], [scrollView.bottomAnchor constraintEqualToAnchor:self.view.safeAreaLayoutGuide.bottomAnchor] ]]; [NSLayoutConstraint activateConstraints:@[ [stackView.topAnchor constraintEqualToAnchor:scrollView.contentLayoutGuide.topAnchor], [stackView.leadingAnchor constraintEqualToAnchor:scrollView.contentLayoutGuide.leadingAnchor], [stackView.trailingAnchor constraintEqualToAnchor:scrollView.contentLayoutGuide.trailingAnchor], [stackView.bottomAnchor constraintEqualToAnchor:scrollView.contentLayoutGuide.bottomAnchor], [stackView.widthAnchor constraintEqualToAnchor:scrollView.frameLayoutGuide.widthAnchor] ]]; for (int index = 1; index <= 50; index++) { if (index == 10) { _flutterViewController = [[FlutterViewController alloc] init]; [_flutterViewController setInitialRoute:@"resize"]; _flutterViewController.autoResizable = YES; [self addChildViewController:_flutterViewController]; [stackView addArrangedSubview:_flutterViewController.view]; _flutterViewController.view.translatesAutoresizingMaskIntoConstraints = NO; _flutterViewController.view.accessibilityIdentifier = @"flutter_view"; [_flutterViewController didMoveToParentViewController:self]; } else { UILabel *label = [[UILabel alloc] init]; label.text = [NSString stringWithFormat:@" Hello from iOS %d ", index]; label.backgroundColor = (index % 2 == 0) ? [UIColor systemGray5Color] : [UIColor systemGray3Color]; label.translatesAutoresizingMaskIntoConstraints = NO; [label.heightAnchor constraintEqualToConstant:44].active = YES; [stackView addArrangedSubview:label]; } } } @end