mirror of
https://github.com/LeoNatan/LNPopupController.git
synced 2026-07-30 16:11:51 +00:00
108 lines
4.0 KiB
Objective-C
108 lines
4.0 KiB
Objective-C
//
|
|
// IntroWebViewController.m
|
|
// LNPopupControllerExample
|
|
//
|
|
// Created by Leo Natan on 10/28/20.
|
|
// Copyright © 2020 Leo Natan. All rights reserved.
|
|
//
|
|
|
|
#import "IntroWebViewController.h"
|
|
#import "LNPopupControllerExample-Bridging-Header.h"
|
|
@import WebKit;
|
|
@import LNPopupController;
|
|
|
|
extern UIImage* LNSystemImage(NSString* named);
|
|
|
|
@interface IntroWebViewController ()
|
|
{
|
|
WKWebView* _webView;
|
|
UIView* _topColorView;
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation IntroWebViewController
|
|
|
|
- (UIStatusBarStyle)preferredStatusBarStyle
|
|
{
|
|
return UIStatusBarStyleLightContent;
|
|
}
|
|
|
|
- (void)viewDidLoad
|
|
{
|
|
[super viewDidLoad];
|
|
|
|
_webView = [WKWebView new];
|
|
[_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"https://github.com/LeoNatan/LNPopupController"]]];
|
|
_webView.translatesAutoresizingMaskIntoConstraints = NO;
|
|
_webView.allowsBackForwardNavigationGestures = YES;
|
|
// _webView.scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
|
|
if(@available(iOS 13.0, *))
|
|
{
|
|
_webView.scrollView.automaticallyAdjustsScrollIndicatorInsets = NO;
|
|
}
|
|
[self.view addSubview:_webView];
|
|
|
|
// UIBlurEffectStyle style = UIBlurEffectStyleSystemThinMaterial;
|
|
// _effectView = [[UIVisualEffectView alloc] initWithEffect:[UIBlurEffect effectWithStyle:style]];
|
|
_topColorView = [UIView new];
|
|
_topColorView.backgroundColor = [UIColor colorWithRed:0.12 green:0.14 blue:0.15 alpha:1.0];
|
|
_topColorView.translatesAutoresizingMaskIntoConstraints = NO;
|
|
[self.view addSubview:_topColorView];
|
|
|
|
[NSLayoutConstraint activateConstraints:@[
|
|
[self.view.topAnchor constraintEqualToAnchor:_webView.topAnchor],
|
|
[self.view.bottomAnchor constraintEqualToAnchor:_webView.bottomAnchor],
|
|
[self.view.leadingAnchor constraintEqualToAnchor:_webView.leadingAnchor],
|
|
[self.view.trailingAnchor constraintEqualToAnchor:_webView.trailingAnchor],
|
|
|
|
[self.view.topAnchor constraintEqualToAnchor:_topColorView.topAnchor],
|
|
[self.view.safeAreaLayoutGuide.topAnchor constraintEqualToAnchor:_topColorView.bottomAnchor],
|
|
[self.view.leadingAnchor constraintEqualToAnchor:_topColorView.leadingAnchor],
|
|
[self.view.trailingAnchor constraintEqualToAnchor:_topColorView.trailingAnchor],
|
|
]];
|
|
|
|
self.popupItem.image = [UIImage imageNamed:@"AppIcon60x60"];
|
|
self.popupItem.barButtonItems = @[
|
|
[[UIBarButtonItem alloc] initWithImage:LNSystemImage(@"suit.heart.fill") style:UIBarButtonItemStylePlain target:self action:@selector(_navigate:)],
|
|
];
|
|
|
|
NSString* title = NSLocalizedString(@"Welcome to LNPopupController!", @"");
|
|
|
|
NSMutableAttributedString* attribTitle = [[NSMutableAttributedString alloc] initWithString:title];
|
|
[attribTitle addAttributes:@{
|
|
NSFontAttributeName: [[UIFontMetrics metricsForTextStyle:UIFontTextStyleBody] scaledFontForFont:[UIFont systemFontOfSize:15 weight:UIFontWeightMedium]],
|
|
} range:NSMakeRange(0, attribTitle.length)];
|
|
[attribTitle addAttributes: @{
|
|
NSFontAttributeName: [[UIFontMetrics metricsForTextStyle:UIFontTextStyleHeadline] scaledFontForFont:[UIFont systemFontOfSize:16 weight:UIFontWeightHeavy]],
|
|
} range:[title rangeOfString:NSLocalizedString(@"LNPopupController", @"")]];
|
|
|
|
self.popupItem.attributedTitle = attribTitle;
|
|
|
|
if(@available(iOS 15.0, *))
|
|
{
|
|
[_webView addObserver:self forKeyPath:@"themeColor" options:NSKeyValueObservingOptionNew context:NULL];
|
|
[_webView addObserver:self forKeyPath:@"underPageBackgroundColor" options:NSKeyValueObservingOptionNew context:NULL];
|
|
}
|
|
}
|
|
|
|
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context API_AVAILABLE(ios(15.0))
|
|
{
|
|
// _effectView.effect = nil;
|
|
_topColorView.backgroundColor = _webView.themeColor;
|
|
}
|
|
|
|
- (IBAction)_navigate:(id)sender
|
|
{
|
|
[UIApplication.sharedApplication openURL:[NSURL URLWithString:@"https://github.com/LeoNatan/LNPopupController"] options:@{} completionHandler:nil];
|
|
}
|
|
|
|
- (void)viewSafeAreaInsetsDidChange
|
|
{
|
|
[super viewSafeAreaInsetsDidChange];
|
|
|
|
_webView.scrollView.scrollIndicatorInsets = self.view.safeAreaInsets;
|
|
}
|
|
|
|
@end
|