`
lupingui
  • 浏览: 159252 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

iPhone 响应屏幕旋转

 
阅读更多

首先重写UIViewController方法:

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
	
	return YES;
}

 你也可以根据toInterfaceOrientation的不同值来判断是否允许旋转。这个传入参数有四种取值:

UIInterfaceOrientationLandscapeLeft 横向Home键在左
UIInterfaceOrientationLandscapeRight 横向Home键在右
UIInterfaceOrientationPortrait 正常
UIInterfaceOrientationPortraitUpsideDown 反向Home键在上


可以在下面的方法中处理旋转后要重画的组件,或者重载另一个NIB文件。 

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
// 重新加载一个Nib文件
if (self.interfaceOrientation == UIInterfaceOrientationLandscapeLeft || self.interfaceOrientation == UIInterfaceOrientationLandscapeRight) {
		[[NSBundle mainBundle] loadNibNamed:@"LoginViewLandscape" owner:self options:nil];
	}else {
		[[NSBundle mainBundle] loadNibNamed:@"LoginView" owner:self options:nil];
	}
// 重写Toolbar
// Set Toolbar
	UIBarButtonItem *newChat = [[UIBarButtonItem alloc] initWithTitle:@"新增" style:UIBarButtonItemStylePlain target:self action:@selector(createChat:)];
	UIBarButtonItem *refresh = [[UIBarButtonItem alloc] initWithTitle:@"刷新" style:UIBarButtonItemStylePlain target:self action:@selector(refresh:)];
	UIBarButtonItem *deleteChat = [[UIBarButtonItem alloc] initWithTitle:@"删除" style:UIBarButtonItemStylePlain target:self action:@selector(deleteChat:)];
	
	self.deleteItem = deleteChat;
	self.deleteItem.enabled = NO;
	UIBarButtonItem *fixedItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:NULL];
	if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft || toInterfaceOrientation == UIInterfaceOrientationLandscapeRight) {
		fixedItem.width = 155;
	}else {
		fixedItem.width = 75;
	}
	
	NSArray *toolBarItems = [[NSArray alloc] initWithObjects:newChat, fixedItem, refresh, fixedItem, self.deleteItem, nil];
	
	[self setToolbarItems:toolBarItems];
	[toolBarItems release];
	[newChat release];
	[deleteChat release];
	[fixedItem release];
	[refresh release];
}

 

如果你使用了Interface Builder工具,并不一定要重写界面,工具有自动处理的方式。

方法:

1 选中你的组件

2 Command+3 打开View Size配置界面 你会看到有一项叫:Autosizing  如下图:

3 设置组件自动缩放情况

  左边的框,中间有个小框,里面是指垂直和水平是否缩放,外面是指位置。根据各自应用调整,调整后在右边的小动画里能看到效果。


下面是两个实现了旋转响应的效果图,一个是重新加载了Nib文件,一个是用Interface Builder工具自动缩放。



 
分享到:
评论

相关推荐

    屏幕自动旋转和调节大小

    这个Demo可能包含了如何设置屏幕旋转支持、使用Auto Layout进行响应式布局、以及在不同设备尺寸下展示正确界面的实践。通过学习和分析这个Demo,开发者可以更好地理解和掌握iOS中的屏幕旋转和大小调节技术。 总之,...

    CSS3 iPhoneX手机屏幕背景和页面背景图片同时切换特效

    3. **变换(Transforms)**:变换允许我们对元素进行旋转、缩放、平移和倾斜等操作,用于调整背景图片的位置和大小,以适应iPhoneX的屏幕。 4. **背景图像(Background Images)**:CSS3支持多个背景图像,这使得...

    iPhone客户机应用开发教程

    3. 旋转功能:用户可以90°旋转屏幕,应用需要能够自适应屏幕方向的变化。 4. 触摸屏界面:相比于鼠标,触摸屏操作精度较低,因此按钮和链接的大小和间距应适当增加。 5. 网络环境:iPhone用户通常面临较慢的网络...

    Beginning iPhone SDK

    在书中,作者详细介绍了如何使用视图控制器来管理界面元素,如按钮、文本框等,并展示了如何响应用户输入,如点击事件和屏幕旋转。 #### 4. 数据显示与持久化 本书还深入探讨了如何在iPhone应用中展示和存储数据。...

    仿iPhoneUI

    1. **响应式布局**:iPhone的UI以其流畅的触摸体验和自适应屏幕尺寸而著名。在Windows CE 6.0上,开发者需要创建一个可以适应不同屏幕分辨率的布局系统,确保元素在小屏幕和大屏幕上都能正常显示。 2. **图标和图形...

    突破ObjectiveC开发速学手册之iPhone入门PPT学习教案.pptx

    iPhone Simulator不仅提供了展示应用界面的功能,还支持一系列模拟真实设备的手势操作,如屏幕旋转、轻拍、轻捏等,以及获取位置数据、拨打电话等功能,方便开发者测试应用的交互性和功能。 教程还提到了Interface ...

    css【Iphone】样式

    2. **响应式设计**:由于iPhone样式通常需要适应不同尺寸的屏幕,因此响应式设计原则是必不可少的。可以使用媒体查询(media queries)来定义不同屏幕尺寸下的样式规则,确保在各种设备上都能正确显示。 3. **伪类...

    WPF自制仿IPhone样式的CheckBox

    5. **响应式设计**:考虑到WPF应用程序可能在不同分辨率和屏幕尺寸上运行,我们需要确保自定义控件能够适应各种环境。 接下来,我们将使用XAML(Extensible Application Markup Language)来定义自定义CheckBox的`...

    iPhone人机界面开发指南

    - **方向变化处理**:适应屏幕旋转,确保界面稳定。 - **声音与振动**:设计合适的音频和触觉反馈,增强互动体验。 - **音频行为定义**:明确应用在不同场景下的声音表现,如背景音乐、提示音。 #### 用户界面设计 ...

    iOS 自动布局及适配iPhone6

    iOS自动布局及适配iPhone6的知识点涵盖了iOS应用开发中界面布局与适配的关键技术,主要包括自动布局(Auto Layout)的使用、屏幕分辨率和像素的处理,以及使用Size Classes来适配不同尺寸的屏幕。 1. 自动布局...

    最新 iPhone 应用程序开发全教程.pdf

    4. **自动旋转与自适应大小**:教授如何让应用在不同屏幕尺寸和方向下正常显示,涉及约束条件和自动调整机制。 5. **多视图应用程序**:通过多视图模式增强应用的灵活性,使用导航控制器和选项卡控制器组织不同的...

    html5纯css3带自动视频播放的iPhone4手机360度旋转展

    总结来说,这个“html5纯css3带自动视频播放的iPhone4手机360度旋转展”充分展示了HTML5的`<video>`元素和CSS3的3D转换、动画、伪元素等特性,以及响应式设计的理念。通过这些技术的综合运用,开发者创造了一个无需...

    iPhone in Action Introduction to Web and SDK Development

    - **方向变化处理**:书中提供了处理iPhone自动旋转屏幕方向的技巧,这对于保持应用在所有方向上的一致性和可用性非常重要。 通过以上知识点的深入解析,我们可以看到,《iPhone在行动:Web与SDK开发入门》一书提供...

    TMS IntraWeb14 iPhone Controls Pack v1.9.0.0 for Delphi DX10.1重新上传.zip

    2. **布局管理**:类似于iOS的自动布局系统,帮助开发者轻松实现响应式设计,适应不同屏幕尺寸。 3. **iPhone样式控件**:如滑动导航条、下拉菜单、标签页、滑块、按钮等,都模仿了iPhone的UI元素。 4. **手势识别**...

    Cocos2D-iPhone开发教程

    Cocos2D-iPhone是一款强大的2D游戏开发框架,它为iOS平台提供了丰富的功能和工具,使得开发者可以轻松创建各种游戏和互动应用。本教程旨在引导新手入门,并帮助经验丰富的开发者提升技能。以下是对Cocos2D-iPhone...

    《Iphone开发基础教程》第五章 自动旋转和调整大小 例子

    在iOS开发中,针对iPhone设备的应用程序设计时,必须考虑到屏幕方向的变化以及用户可能进行的缩放操作。《iPhone开发基础教程》第五章的主题“自动旋转和调整大小”是iOS开发者必须要掌握的关键技能之一,它涉及到...

    iphone 俄罗斯方块源代码

    良好的游戏循环设计能够确保游戏流畅且响应迅速。 4. **事件处理**:在iOS中,通常使用`UIResponder`及其子类来处理触摸事件。我们需要监听屏幕的滑动和点击,以便控制方块的移动和旋转。 5. **开源工具链**:...

    iPhone常用代码集合

    这段代码检查了设备是否响应`currentMode`选择器,并比较了屏幕模式的大小是否等于640x960,这是iPhone 4的屏幕分辨率。 #### 邮箱格式验证代码 验证邮箱格式的准确性在用户输入时非常关键。以下代码使用正则...

    模拟iphone面板折叠的css3折叠效果

    6. **媒体查询**(media queries):用于响应式设计,确保在不同的设备和屏幕尺寸下,折叠效果仍然正常工作。 在项目文件中,`index.html` 是主页面文件,包含了HTML结构和可能的JavaScript引用;`readme.html` ...

Global site tag (gtag.js) - Google Analytics