博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS屏幕切换的示例
阅读量:5741 次
发布时间:2019-06-18

本文共 1301 字,大约阅读时间需要 4 分钟。

hot3.png

蓝色的子视图,在翻转的情况下触发界面大小的调整。

还是使用通知机制,即:

[[NSNotificationCenter defaultCenter] addObserver:self

                                                 selector:@selector(doRotateAction:)
                                                     name:@”UIDeviceOrientationDidChangeNotification”
                                                   object:nil];

不过,这里发现了个问题,当执行通知触发方法的时候,发现总是执行了多次。其中多出来的情况,设备的方向是不对的:

[UIDevice currentDevice].orientation==UIDeviceOrientationUnknown

如上面代码,返回的值是UIDeviceOrientationUnknown,也就是0。只许过滤这种情况即可,下面是比较完整的视图实现代码:

@implementation ContentView

-(id)initWithCoder:(NSCoder *)aDecoder{

    self = [super initWithCoder:aDecoder];
    if (self) {
        [[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector:@selector(doRotateAction:)
                                                     name:@”UIDeviceOrientationDidChangeNotification”
                                                   object:nil];
    }
    return self;
}

-(void) doRotateAction:(NSNotification *) notification{

    if([UIDevice currentDevice].orientation!=UIDeviceOrientationUnknown){
        NSLog(@”do rotate action: %d”,[[notification object] orientation]);
        if([UIDevice currentDevice].orientation==UIDeviceOrientationPortrait||
           [UIDevice currentDevice].orientation==UIDeviceOrientationPortraitUpsideDown){
            self.frame=CGRectMake(self.frame.origin.x, self.frame.origin.y, 200, 200);
        }else{
            self.frame=CGRectMake(self.frame.origin.x, self.frame.origin.y, 600, 500);
        }
    }
}

-(void)dealloc{

    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

转载于:https://my.oschina.net/xiahuawuyu/blog/92989

你可能感兴趣的文章
点击空白处 关闭气泡的问题
查看>>
Java C++ Python PHP JS等各种语言中的INT最值
查看>>
如何在Windows环境下模拟丢包
查看>>
ECharts概念学习系列之ECharts官网教程之自定义构建 ECharts(图文详解)
查看>>
redis.Pool 配置
查看>>
【转】Java计算文件的hash值
查看>>
httpd htpasswd命令
查看>>
java基本数据类型
查看>>
https://www.cnblogs.com/netoxi/p/7258895.html
查看>>
php中的curl的一些参数总结
查看>>
UWP: 在 UWP 中使用 Entity Framework Core 操作 SQLite 数据库
查看>>
php连接符
查看>>
Linux内核同步:自旋锁
查看>>
chrom中 background 调用pop.js
查看>>
【nginx+tomcat集群】Nginx1.12.2+Tomcat7集群+负载均衡+Session共享
查看>>
HttpURLConnection与HttpClient浅析
查看>>
Go 语言和 Scala 语言对比
查看>>
Mecanim动画编辑器 - 加入动画层实现并行动作
查看>>
JAVA设计模式之工厂模式
查看>>
带有飞线的地图
查看>>