blob: ee832d646a5a6af7a64e32b0a9abda143122aaed [file] [log] [blame]
// 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