| // 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 <Flutter/Flutter.h> |
| |
| #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 |