- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor redColor];
UIView *testView = [[UIView alloc] initWithFrame:CGRectMake(0, KStatusBarHeight, KScreenWidth, 200)];
testView.backgroundColor = [UIColor blackColor];
[self.view addSubview:testView];
self.testView = testView;
}
- (void)viewSafeAreaInsetsDidChange {
[super viewSafeAreaInsetsDidChange];
NSLog(@"%s", __func__);
[self updateFrame];
}
- (void)updateFrame {
if (@available(iOS 11.0, *)) {
CGRect newFrame = self.testView.frame;
newFrame.origin.x = self.view.safeAreaInsets.left;
newFrame.size.width = KScreenWidth - self.view.safeAreaInsets.left - self.view.safeAreaInsets.right;
self.testView.frame = newFrame;
}
}
用frame的话,不仅低于11的系统,就连高于11的系统,要适配起横屏问题都比较麻烦。
所以笔者是趋向于用约束的,见仁见智吧。
这里再贴出两篇说SafeArea的文章。
最近很火的 Safe Area 到底是什么
笔者很久不用xib了,贴出现成的一篇文章。
iOS XIB使用Safe Area后在iOS9和10上面出现的问题和解决方案
automaticallyAdjustsScrollViewInsets:
如果你要想进入路由器,先根据路由器上的默认设置ip:192.168.1.1,在电脑网络属性中,打开网络属性,点internet协议属性,默认是自动获取ip地址,这时你点使用下面的ip地址,然后在ip地址一栏填上:192.168.1.100,子网掩码填上:255.255.255.0,默认网关填上:192.168.1.1(如果192.168.0.1,那么相对要把1改成0),把自动获取dns服务地址,改成使用下面的dns服务地址,先填成:192.168.1.1,然后点确认,电脑网络连接成功后,就可以进入路由器了,如果你想继续使用手动ip设置,进入路器后,在路由器里找到dns服务地址,然后记下来,把电脑里的dns服务地址182.168.1.1改成和路由器一样,这样一来不会影响网速了。
看下图,uinavigationcontroller有navigation bar ,navigation view ,navigation toobar等组成。
根据官方对fitssystemwindows属性的描述,当view的fitssystemwindows设置为true的时候,系统会自动为该view设置相应的padding以适应键盘、状态栏、导航栏等系统窗口,这就可以解释为什么给toolbar设置fitssystemwindows之后toolbar会自动加上paddingtop以适应状态栏,如果没有加上fitssystemwindows=true,toolbar则会有部分被状态栏覆盖。
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/sanxing/article-90192-5.html
你派核潜艇去是想叫人发现呢还是不想叫人发现呢