如何 主动触发事件 触发屏幕旋转

下次自动登录
现在的位置:
& 综合 & 正文
关于IOS屏幕的旋转问题
处理IPhone屏幕的旋转是我们经常遇到的,当你做一个应用既然满足竖屏又要满足横屏,这就要求我们会处理屏幕旋转的问题!
方法一:自动布局
1.将项目中界面的四种手持方式都点上;
2.取消Use A
3.选择界面中某个控件然后到属性工具栏中去找到AutoSizing功能,勾选对应的绝对定位的线条
4.重写可以旋转的方法
-(BOOL)shouldAutorotate
return YES;
-(NSUInteger)supportedInterfaceOrientations
return UIInterfaceOrientationMaskA
方法二:手动布局一(通过改view种控件的坐标)
1.重写可以旋转的方法
-(BOOL)shouldAutorotate
return YES;
-(NSUInteger)supportedInterfaceOrientations
return UIInterfaceOrientationMaskA
2.勾选上项目中支持的四种手持类型
3.取消Use Autolayout
4.代码实现:
//每当屏幕旋转的时候都会触发一个
-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
//如果是是横屏状态
if(toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft )
self.l1.frame = CGRectMake(20, 25, 110, 110);
self.l2.frame = CGRectMake(162, 25, 110, 110);
self.l3.frame = CGRectMake(304, 25, 110, 110);
self.r1.frame = CGRectMake(20, 178, 110, 110);
self.r2.frame = CGRectMake(162, 178, 110, 110);
self.r3.frame = CGRectMake(304, 178, 110, 110);}
方法三:手动布局二(在xib中新建一个支持横屏的view通过双view切换实现)
1.在xib文件中拖一个view控件,选择Orientation属性为横屏
2.布局好界面
3.将横纵view分别在controller.h文件中创建对应的属性,命名为
@property (retain,
nonatomic) IBOutlet UIView *landspaceV
@property (retain,
nonatomic) IBOutlet UIView *portatiorV
4.代码实现
宏定义实现角度转弧度
#define degreesToRadia(x) (M_PI * (x) / 180)//参数要加括号 ,尤其是参数附近特别要加括号
-(BOOL)shouldAutorotate
return YES;
-(NSUInteger)supportedInterfaceOrientations
return UIInterfaceOrientationMaskA
//每当屏幕旋转的时候都会触发一个
-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
//如果是是横屏状态
if(toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft )
self.l1.frame = CGRectMake(20, 25, 110, 110);
self.l2.frame = CGRectMake(162, 25, 110, 110);
self.l3.frame = CGRectMake(304, 25, 110, 110);
self.r1.frame = CGRectMake(20, 178, 110, 110);
self.r2.frame = CGRectMake(162, 178, 110, 110);
self.r3.frame = CGRectMake(304, 178, 110, 110);
self.view = self.landspaceV
//self.view.transform = CGAffineTransformI
self.view.transform = CGAffineTransformMakeRotation(degreesToRadia(270));
self.view.bounds = CGRectMake(0, 0, 480, 300);
else if(toInterfaceOrientation == UIInterfaceOrientationLandscapeRight)
self.l1.frame = CGRectMake(37, 20, 110, 110);
self.l2.frame = CGRectMake(37, 162, 110, 110);
self.l3.frame = CGRectMake(37, 304, 110, 110);
self.r1.frame = CGRectMake(190, 20, 110, 110);
self.r2.frame = CGRectMake(190, 162, 110, 110);
self.r3.frame = CGRectMake(190, 304, 110, 110);
self.view = self.landspaceV
//self.view.transform = CGAffineTransformI
self.view.transform = CGAffineTransformMakeRotation(degreesToRadia(90));
self.view.bounds = CGRectMake(0, 0, 480, 300);
else if (toInterfaceOrientation == UIInterfaceOrientationPortrait)
self.view = self.portatiorV
self.view.transform = CGAffineTransformI
self.view.bounds = CGRectMake(0, 0, 320, 460);
else if(toInterfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)
self.view = self.portatiorV
//self.view = self.landspaceV
//self.view.transform = CGAffineTransformI
self.view.transform = CGAffineTransformMakeRotation(degreesToRadia(180));
self.view.bounds = CGRectMake(0, 0, 320, 460);
模拟屏幕旋转
commond + 方向键
&&&&推荐文章:
【上篇】【下篇】搜索 新闻 资讯 游戏
您现在的位置:&&>>&&>>&&>>&&>>&正文
iPhone6手机屏幕旋转怎么关闭?
编辑:huke && 来源:iPhone中文网 && 发布时间: 16:46:42
  屏幕自动旋转是很多安卓手机和苹果手机都有的功能,这个功能也受到很多机友们的喜爱,但也不是所有的用户都去买账的,比如躺在床上看视频的时候这个旋转功能就非常讨厌。最近也有不少的果粉们在一些论坛咨询iPhone6手机屏幕旋转怎么关闭,下面小编就来告诉大家怎么去关掉它。
  温馨提示:本教程同样适用于iPhone 6Plus。
【iPhone6手机屏幕旋转怎么关闭】
  1、打开iPhone6 plus的屏幕,用手指从屏幕底部向上滑动。
  2、随后即可打开控制中心了,在控制中心的右上角就是关闭屏幕旋转的开关。
  3、点击它即可关闭屏幕旋转,此时会发现控制旋转的图标在控制中心以高亮显示。
  4、在关闭了屏幕旋转功能以后,当打开支持屏幕旋转的应用软件时,就不再会随着手机方向的改变而旋转了。比如在看照片时,浏览网页时,或其它一些应用支持屏幕旋转的应用软件。
扫描左侧二维码,可以订阅iPhone中文网官方微信。每天除了推送最新的苹果产品资讯,我们还将不定期举行有奖活动,广大网友可以积极参与,幸运随时会降临!当然,你也可微信搜索“iPhone中文网”或“apple4cn”,关注iPhone中文网官方微信,第一时间获取更多苹果资讯。
iOS越狱破解
苹果产品信息查询
热门新闻排行
皖公网安备05 皖网文许字[3号
TGBUS Corporation, All Rights Reserved1.获取HOME键方向
视图控制器本身能检测到屏幕的旋转,如果要处理屏幕旋转,需要重写方法
supportedInterfaceOrientations(设置设备支持旋转的方法, 如果不添加,视图控制器将无法检测到屏幕的旋转)
旋转后键盘收回
- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id&UIViewControllerTransitionCoordinator&)coordinator
视图控制器会自动调整view的大小以适应屏幕的旋转,bounds被修改,触发view的layoutSubviews的方法
所以重写layoutSubviews方法,根据设备方向,重新布局
layoutSubviews方法:这个方法,默认没有做任何事情,需要子类进行重写
注意:layoutSubviews在以下情况下会被调用:
init初始化不会触发layoutSubviews
&&&但是是用initWithFrame&进行初始化时,当rect的值不为CGRectZero时,也会触发
addSubview会触发layoutSubviews &
设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化
滚动一个UIScrollView会触发layoutSubviews
旋转Screen会触发父UIView上的layoutSubviews事件
改变一个UIView大小的时候也会触发父UIView上的layoutSubviews事件
2.获取状态栏的方向
[UIApplication&sharedApplication].statusBarOrientation
阅读(...) 评论()中文(简体)
中文(繁體)
中文(台灣)
中文(新加坡)
中文(香港)
打开Movie Maker程序。旧版本又被称为Windows Live Movie Maker。在Windows Vista和7系统中,打开开始菜单,选择“所有程序”选项。浏览程序列表并点击“Windows Live Movie Maker”。在Windows 8系统中,在开始界面输入“Movie Maker”。
由于Movie Maker程序并不是Windows自带的默认程序,所以在使用前,你可能需要下载它。你可以从微软官网免费下载该软件。
把视频导入Live Movie Maker。从主页选项卡中,点击“添加视频和照片”图标。找到你想要上传的视频,并且双击文件。 这样视频就能成功导入软件,你可以在预览界面浏览视频了。
旋转视频。在主页选项卡下找到编辑工具区中的旋转按钮。点击“向左旋转”或“向右旋转”按钮,来将视频旋转90°。
保存更改。点击主页选项卡下的“保存电影”来保存以上更改,并选择特定的文件格式。你也可以点击文件,选择文件菜单中的“保存电影”,然后选择文件格式,并设定文件的保存路径。
下载 iMovie。你可以从Mac电脑的App Store中下载iMovie。下载后并不需要安装额外的的插件即可旋转视频画面。
导入视频文件。打开iMovie,点击文件菜单,选择导入,然后选择电影。浏览计算机中的视频文件,并打开它。这样,你的视频和视频编辑时间线就会出现在预览界面。
打开裁剪菜单。你可以选中视频,然后按住键盘上的“C”键,或点击工具栏的裁剪按钮,来打开裁剪菜单。
旋转视频。当你打开裁剪菜单后,你会看到浏览器上方出现旋转按钮。点击向左或向右旋转按钮来90°旋转画面。当你满意旋转的结果,点击完成按钮。
使用“匹配”选项来确保你不会在旋转后丢失视频边缘画面。这会导致视频的边缘和底部出现黑色边栏。
保存更改。当你完成旋转后,点击文件,选择导出并保存你的视频。你可以选择视频文件格式和路径来保存你的文件。
在VLC播放器中打开视频。VLC播放器是一款免费、开源的视频播放器,你可以从开发者网站上下载它。在VLC中旋转你的视频可以保证当你使用VLC打开视频文件时,它一直处于旋转后的角度,但是这并不影响在其它播放器中播放文件的角度。
打开“调整和特效”窗口。你可以点击播放栏底部的按钮来进入该窗口,图标看上去是三条垂直的滑块条。你也可以点击工具菜单,选择“特效和过滤器”。
点击“视频特效”选项卡。选择“几何特效”子选项卡。
勾选“变形”对话框。这会开启下方菜单。使用这个菜单来选择如何旋转视频画面。你可以旋转90°、180°、270°和调换画面等。完成操作后,关闭“调整和特效”窗口。
如果你想自由旋转视频,勾选“旋转”对话框。这会打开角度旋转盘。点击并拖拽转盘调整视频画面的角度。
搜索电影旋转、编辑应用程序。在苹果设备和安卓设备上有许多免费或付费的视频编辑应用软件。你可以在下载前查看浏览应用的功能,并慎重决定下载哪一款应用。几款非常受欢迎的应用有:
Video Rotate Free – iOS
Video Rotate and Flip – iOS
mVideoCut – 安卓
视频工具箱 – 安卓
在应用程序里打开文件。当你安装程序后,打开它,并选择你的视频文件。每个程序的步骤略有不同,但是你应该都能查看浏览手机中存储的视频文件,并选择你想要旋转的文件。
旋转视频。当你导入文件后,可以开始旋转画面了。具体操作编辑的选项取决于你使用的应用程序,但基本都包括90°旋转画面这样的选项。
导出文件。同样的,具体操作可能有所不同。但是通常程序都能够导出旋转后的视频文件,以方便你再次浏览它。
打开Windows Movie Maker 2.6。打开开始菜单,点击“所有程序”菜单选项。浏览程序列表,点击“Windows Movie Maker”。
如果你没有Windows Movie Maker 2.6,你可以从微软网站上免费下载它。
导入你的视频文件。选择导入菜单中的“视频”选项。找到你想要旋转的视频,然后双击文件。你的视频就被导入到程序中,并可以在预览界面中看到它了。
在编辑时间轴中插入视频。点击并拖拽视频到时间轴上。你的视频就会出现在视频部分的时间轴中。
旋转你的视频。在视频时间轴上右键点击视频,然后点击“特效”。接着会出现“添加或删除特效”窗口。滚动“可用特效”The "Add or Remove Effects" window is now visible. Scroll down the "Available Effects" 菜单,并找到三个选项:旋转90°、旋转180°、旋转270°。然后选择旋转角度。点击右侧“显示特效”窗口的添加按钮。如果你满意旋转后的画面,就点击确定按钮。
保存更改。菜单栏中选取“发布电影”选项。确保选中“本台电脑”,然后点击“下一步”。输入文件名称和保存路径,点击下一步。选择文件格式后点击发布,完成!
下载VLC媒体播放器。按照提示进行安装。
你可以在线搜索找到VLC媒体播放器。
使用VLC媒体播放器打开视频。
前往工具菜单,找到特效和过滤器 -& 视频特效。
在视频特效中,找到几何特效。点击旋转。你可以选择相应的旋转角度。
前往网站,点击页面中部的“选取视频”按钮。
在你的计算机或移动设备上选择视频。当文件选择对话框关闭时,视频就上传到RotateMyVideo了。上传过程可能花费几秒钟或几分钟,具体时间视你的网速和文件大小而定。
点击旋转部分的按钮(按钮图标时向左或向右的箭头),直到调整好画面角度。你会在右侧视频快照区看到调整后的效果,以便你确定视频旋转的角度是否合适。
点击“旋转视频”按钮。RotateMyVideo会旋转视频画面。这个过程大约花费几秒钟。
点击“下载”链接来下载旋转后的视频。
本页面已经被访问过24,621次。android整合--屏幕旋转触发事件
android整合--屏幕旋转触发事件
发布时间: 8:03:21
编辑:www.fx114.net
本篇文章主要介绍了"android整合--屏幕旋转触发事件",主要涉及到android整合--屏幕旋转触发事件方面的内容,对于android整合--屏幕旋转触发事件感兴趣的同学可以参考一下。
已经知道怎样设置屏幕显示方向,下面看一下屏幕旋转时触发事件。
先看main.xml
&?xml version=&1.0& encoding=&utf-8&?&
&LinearLayout xmlns:android=&/apk/res/android&
android:layout_width=&fill_parent&
android:layout_height=&fill_parent&
android:orientation=&vertical& &
&!-- 注意,这个EditText使用了android:id属性 --&
android:id=&@+id/txtField1&
android:layout_width=&fill_parent&
android:layout_height=&wrap_content& /&
&!-- 注意,这个EditText没有使用android:id属性 --&
android:layout_width=&fill_parent&
android:layout_height=&wrap_content& /&
&/LinearLayout&
OrentationsActivity.java。
public class OrientationsActivity extends Activity {
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.d(&StateInfo&, &onCreate&);
public void onStart() {
Log.d(&StateInfo&, &onStart&);
super.onStart();
public void onResume() {
Log.d(&StateInfo&, &onResume&);
super.onResume();
public void onPause() {
Log.d(&StateInfo&, &onPause&);
super.onPause();
public void onStop() {
Log.d(&StateInfo&, &onStop&);
super.onStop();
public void onDestroy() {
Log.d(&StateInfo&, &onDestroy&);
super.onDestroy();
public void onRestart() {
Log.d(&StateInfo&, &onRestart&);
super.onRestart();
在两个EditText中输入一些字符。就像这样。
6. 按Ctrl+F11,改变屏幕的方向。下图展示了横屏下的模拟器。注意,第一个EditText的内容仍然是存在的,但第二个EditText已经被清空了。(文章结尾会解释这是为什么)
7、观察LogCat窗口。
view plaincopy
12-15&12:27:20.747:&D/StateInfo(557):onCreate&&12-15&12:27:20.747:&D/StateInfo(557):onStart&&12-15&12:27:20.747:&D/StateInfo(557):onResume&&...&&12-15&12:39:37.846:&D/StateInfo(557):onPause&&12-15&12:39:37.846:&D/StateInfo(557):onStop&&12-15&12:39:37.866:&D/StateInfo(557):onDestroy&&12-15&12:39:38.206:&D/StateInfo(557):onCreate&&12-15&12:39:38.216:&D/StateInfo(557):onStart&&12-15&12:39:38.257:&D/StateInfo(557):onResume&&
从LogCat窗口可以看出,当屏幕方向改变的时候,Activity被销毁了。
view plaincopy
12-15&12:39:37.846:&D/StateInfo(557):onPause&&12-15&12:39:37.846:&D/StateInfo(557):onStop&&12-15&12:39:37.866:&D/StateInfo(557):onDestroy&&
随之,它又被重新创建了。
view plaincopy
12-15&12:39:38.206:&D/StateInfo(557):onCreate&&12-15&12:39:38.216:&D/StateInfo(557):onStart&&12-15&12:39:38.257:&D/StateInfo(557):onResume&
在屏幕旋转时,会销毁当activity,所以我们要保存我们的数据,而onpause方法是销毁时最开始执行的方法,所以我们要把保存数据写在这个方法中。
在上面例子可以看出,有id的edittext保存了数据,而没有id的edittext没有保存数据,这是系统自己执行的保存动作,那么怎样手动保存呢,下面开始说。
当activity被销毁的时候,会调用onpause方法或onSaveinstancestate方法,但是当activity葱调用栈中被清除的时候onsaveinstancestate方法不被调用,所以我们要尽量把保存数据写在onpause方法中
简而言之,想要保存activity的状态,那么总是要实现onPause()方法,然后使用你自己的方法去保存状态信息,例如使用数据库,外部或内部的存储。
如果你想简单地保存状态信息,当activity在重新创建的时候,从新加载这些信息。一个简单的方法就是实现onSaveInstanceState()这个方法,因为它提供了一个Bundle对象作为参数,这样,就可以使用这个Bundle对象去保存activity的信息。下面的代码将展示如何使用onSaveInstanceState()方法:
protected void onSaveInstanceState(Bundle outState) {
// TODO Auto-generated method stub
outState.putString(&id&, &12324&);
super.onSaveInstanceState(outState);
当activity被重建的时候oncreate方法首先被调用,然后onrestoreinstancestate方法被调用,恢复保存数据
protected void onRestoreInstanceState(Bundle savedInstanceState) {
// TODO Auto-generated method stub
String ID = savedInstanceState.getString(&id&);
但是 onRestoreInstanceState这个方法也有局限性,它只能通过Bundle存放数据,如果想要存放更多的数据,更复杂的数据,这样就不太合适了,再介绍一种方法
当一个activity配置被修改的时候,这个方法会自动被调用,返回object类型,意味着你可以存放任何类型数据
把你想保存的东西,通过这个方法返回出来。
可以观察到,这个方法返回一个Object对象,这就允许你返回任何数据类型。如果要提取保存的数据,可以在onCreate()方法中进行提取,使用getLastNonConfigurationInstance()回调方法:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String message = (String)getLastNonConfigurationInstance();
onRetainNonConfigurationInstance()和getLastNonConfigurationInstance(),这两个方法可以允许你随时地保存信息。
例如,当用户下载数据的同时改变了屏幕方法,使用这两个方法去保存数据,总好过重新下载数据吧。
本文标题:
本页链接:

我要回帖

更多关于 jquery主动触发事件 的文章

 

随机推荐