在ios8中做的屏幕旋转功能

http://www.cnblogs.com/smileEvday/archive/2013/04/24/Rotate2.html

思路出自这篇博主的文章。

直接上代码

-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    NSLog(@"你旋转了");
    if (toInterfaceOrientation ==UIInterfaceOrientationLandscapeLeft ) {
        [self addSegmentControl:UIInterfaceOrientationLandscapeLeft];
        [self.segementControl_base addTarget:self action:@selector(clickOnSegment:) forControlEvents:UIControlEventValueChanged];
        [self initData];
        [self initLrc];

    }
    else if(toInterfaceOrientation == UIInterfaceOrientationLandscapeRight)
    {
               [self addSegmentControl:UIInterfaceOrientationLandscapeRight];
        [self.segementControl_base addTarget:self action:@selector(clickOnSegment:) forControlEvents:UIControlEventValueChanged];
        [self initData];
        [self initLrc];

    }
    else
    {
        [self addSegmentControl:UIInterfaceOrientationPortrait];
        [self.segementControl_base addTarget:self action:@selector(clickOnSegment:) forControlEvents:UIControlEventValueChanged];
        [self initData];
        [self initLrc];

    }
}

通过给对应的segment传入当前的旋转状态来设置segment在旋转到不同的方向时加载的数据

-(void)addSegmentControl:(UIInterfaceOrientation)toInterfaceOrientation
{
    [self.segementControl_base removeFromSuperview];
    NSArray *segmentArray  = [NSArray arrayWithObjects:@"基本课文",@"应用课文" ,@"单词",nil];
   UISegmentedControl * segmentControl = [[UISegmentedControl alloc]initWithItems:segmentArray];
    self.segementControl_base = segmentControl;
#warning 判断旋转方式
    if(UIInterfaceOrientationLandscapeLeft == toInterfaceOrientation){
        segmentControl.frame = CGRectMake(0, self.navigationController.navigationBar.frame.size.height, self.view.frame.size.width, self.view.frame.size.height*0.1);
    }else if(toInterfaceOrientation == UIInterfaceOrientationPortrait){
        segmentControl.frame = CGRectMake(0, 67, self.view.frame.size.width, self.view.frame.size.height*0.07);
    }
    else if (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight)
    {
        segmentControl.frame  = CGRectMake(0, self.navigationController.navigationBar.frame.size.height, self.view.frame.size.width, self.view.frame.size.height*0.1);
    }
        segmentControl.selectedSegmentIndex = tags;
//    [segmentControl addTarget:self action:@selector(onSegmentedControlChanged:) forControlEvents:UIControlEventValueChanged];
    [self.view addSubview:segmentControl];
}

通过判断旋转方向来设置segment的大小,通过给不同的segment绑定不同的tags来确定相关的数据加载。

需要思考就是,全局变量是否应该使用的这么频繁。

接下来需要解决的问题就是音乐数据的打包和点击的时候切换到相关的事件点,就是监听cell的点击。

然后就看一下appsotre是否有一个推荐的功能,重复播放音乐的功能。

还有就是双语的功能,通过点击取消中文。随后就是看一些apple的源码,看一下对于数据的封装这一块是怎么做到的。

时间: 2024-08-05 17:05:46

在ios8中做的屏幕旋转功能的相关文章

vue项目中图片预览旋转功能

最近项目中需要在图片预览时,可以旋转图片预览,在网上找了下,发现有一款功能强大的图片组件:viewerjs. git-hup: https://github.com/fengyuanchen/viewerjs 在git上看了下,有很多功能,不过我的项目只需要做个图片旋转功能,引入这个组件感觉大材小用了,于是自己写了个简易版的,因为我们只是查看而已,没什么要求.如果你需要比较精确的图片旋转功能,可以使用这个viewerjs组件 功能描述: 一个图片预览框,三个操作按钮: 上一张,下一张,旋转; 点

win8中如何禁用屏幕旋转的快捷键

程序员通常会使用ctrl+alt+方向键 里编辑代码,特别对于使用eclipse的程序员,更是如此,但是win8却把这一快捷键给占用了,很不爽,如何办,很简单.直接上图: 2.但是发现禁用之后并没有解决问题,该系列快捷键还是不能被VS或eclipses使用,因此必须更改这些快捷键,才可以达到目的.在桌面空白处右击,选择:->图形属性->选项和支持,更改快捷键

【分享】迅为iTOP4412开发板-Android系统屏幕旋转设置

1.1概述 Android4.0,Androd4.4源代码能够编译成手机模式和平板模式,讯为iTop4412 开发平台 的Android系统默认编译为平板模式.客户须要依据自己的产品设计及应用环境,切换屏幕 的显示方向,或者固定好一个显示方向,比如产品中使用不同分辨率的显示屏,或者显示屏 在产品中的固定方向发生改变等等,都须要进行屏幕旋转功能.  那么怎样设置屏幕的旋转 呢?我们提供两种方式满足客户的这一需求. 1.2  安装屏幕旋转APK 迅为公司公布的  Android4.4镜像中含有  S

Android开发--教你巧妙应对屏幕旋转

Android手机支持屏幕旋转功能,手机屏幕旋转直接引发了我们的App视图变化,我们选择怎样去处理手机的翻转以及当我们的手机屏幕发生了旋转的时候我们选择何种策略去进行处理视图直接影响了我们的App的用户体验.今天我们一起来学习一下手机屏幕旋转的相关知识. 设置屏幕方向切换的属性 为了使Activity在屏幕旋转方向适应不同的场合,在AndroidManifest文件的activity标签下提供了android:screenOrientation属性用于满足不同的屏幕旋转需求. unspecifi

WPF中使用AxisAngleRotation3D实现CAD的2D旋转功能

原文:WPF中使用AxisAngleRotation3D实现CAD的2D旋转功能 ????? 对于CAD图形来说,3D旋转比较常用,具体实现方法在上篇文章<WPF中3D旋转的实现 >中做了讲解,可以参考Daniel. ????? 今天说一下CAD的2D旋转,2D旋转虽然不如3D那么常用,但也是CAD操作的基本功能需要实现.刚开始的做法是觉得用AxisAngleRotation3D没法实现2D旋转,所以用RotateTransform去实现.但是用它遇到的问题是旋转的transform没有考虑在

【Android】11.3 屏幕旋转和场景变换过程中GridView的呈现

分类:C#.Android.VS2015: 创建日期:2016-02-21 一.简介 实际上,对于布局文件中的View来说,大多数情况下,Android都会自动保存这些状态,并不需要我们都去处理它.这一节仍以GridView为例(第10章已经介绍过其基本用法了),说明屏幕旋转以及场景切换过程中用GridView呈现的图像是如何自动变换的. 本节主要关注下面的问题: (1)如何通过GridView显示多幅图像. (2)如何使用Activity从一个活动切换到另一个活动,即利用Activity实现场

【转】如何在 Android 程序中禁止屏幕旋转和重启Activity

原文网址:http://www.cnblogs.com/bluestorm/p/3665890.html 禁止屏幕随手机旋转变化 有时候我们希望让一个程序的界面始终保持在一个方向,不随手机方向旋转而变化:在AndroidManifest.xml的每一个需要禁止转向的Activity配置中加入android:screenOrientation=”landscape” 属性. landscape = 横向portrait = 纵向 避免在转屏时重启Activity android中每次屏幕方向切换时

android 程序中禁止屏幕旋转和重启Activity

禁止屏幕随手机旋转变化 有时候我们希望让一个程序的界面始终保持在一个方向,不随手机方向旋转而变化: 在AndroidManifest.xml的每一个需要禁止转向的Activity配置中加入android:screenOrientation="landscape" 属性. landscape = 横向 portrait = 纵向 避免在转屏时重启Activity android中每次屏幕方向切换时都会重启Activity,所以应该在Activity销毁前保存当前活动的状态,在Activi

猫猫学iOS 之控制器view显示中view的父子关系及controller的父子关系_解决屏幕旋转不能传递事件问题

猫猫分享,必须精品 原创文章,欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243 一:效果 二:项目代码 这个Demo用的几个控制器分别画了不通的xib,随便拖拽了几个空间,主要是几个按钮的切换,主要代码展示下: // // NYViewController.m // 控制器的view的显示 // // Created by apple on 14-10-10. // Copyright (c) 2014年 heima. All rights