首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS8更改方向后获取更新的UIView的中心位置

在iOS8之前,我们可以通过willRotateToInterfaceOrientation:duration:方法来获取设备旋转前后的界面方向,并根据旋转后的方向来更新视图的中心位置。但是在iOS8及以后的版本中,苹果推出了新的界面旋转机制,即viewWillTransitionToSize:withTransitionCoordinator:方法。

在这个方法中,我们可以通过withTransitionCoordinator参数获取到一个UIViewControllerAnimatedTransitioning对象,该对象可以帮助我们处理界面旋转的动画过渡效果。而且,我们还可以通过size参数获取到旋转后的界面尺寸。

因此,要在iOS8及以后的版本中获取更新的UIView的中心位置,可以按照以下步骤进行操作:

  1. 在需要更新中心位置的视图控制器中,重写viewWillTransitionToSize:withTransitionCoordinator:方法。
  2. 在方法中,通过withTransitionCoordinator参数获取到旋转过渡的动画协调器对象。
  3. 在动画协调器对象的animateAlongsideTransition:completion:方法中,执行更新中心位置的操作。
  4. 在更新中心位置的操作中,可以通过size参数获取到旋转后的界面尺寸,并根据需要计算出新的中心位置。
  5. 更新视图的中心位置。

以下是一个示例代码:

代码语言:swift
复制
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
    super.viewWillTransition(to: size, with: coordinator)
    
    coordinator.animate(alongsideTransition: { (context) in
        // 在这里执行更新中心位置的操作
        let newCenter = CGPoint(x: size.width / 2, y: size.height / 2)
        self.view.center = newCenter
    }, completion: nil)
}

这样,当设备旋转时,视图的中心位置就会自动更新到旋转后的位置。

推荐的腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

自定义UISearchController外观

以前我们在项目中使用搜索框时候,如果用系统自带控件则是使用UISearchDisplayController,而自从iOS8之后,系统重新给我们提供了一个搜索控件:UISearchController...于是我开始搜索并总结出了几个不通过继承方式来更改UISearchBar外观方法。...获取子View 我们在UISearchController或者是UISearchDisplayController中都可以直接获取到UISearchBar实例,我们可以从这里改变一些UISearchBar...同时我们也可以直接获取UISearchBarsubViews,UISearchBarsubView是一个UIView实例,这个UIView包含了所有在UISearchBar上可以展示子视图,iOS...,至于怎样使用UISearchController来搜索,以及谓词使用,下一篇文章再更新

1.6K20

EasyCVR国标GB28181式添加通道GPS位置获取接口实现过程

由于前不久我们在EasyGBS上添加了视频通道实时GPS定位功能,根据更多项目需求,我们现需在EasyCVR添加国标通道GPS位置获取功能,和其他功能一样,这个功能我们也是通过接口调用来实现,本文分享一下我们实现过程...分析需求,首先需要获取历史位置信息,所以需要将每次新GPS位置信息记录下来,然后在根据用户传入搜索条件去查询通道历史经纬度信息。...设计数据库添加如下表,添加设备名称,创建时间,设备id,通道id,通道名称,经纬度字段等: 添加如下代码,根据前端传入q搜索字段,来查询对应设备经纬度 q := db.SQLite.Model(models.Channel....JSONTime DeviceID string ChannelID string Longitude float64 Latitude float64 //纬度 } 项目现场调用接口测试,能够成功出现经纬度

65020

iOS开发--本地通知与远程通知

App内容更新,推送一些相关消息,让用户知道App内部发生了什么事情。...) 至于显示横幅或者弹窗,取决于用户设置 iOS手机设置中:通知中心-选择应用-选择应用下通知模式-OK!...(需要联网) 远程推送服务---就是APNs 模拟器无法调试远程推送 为什么需要远程推送通知: 解决获取传统数据局限性,让数据实时更新 使用场景: 聊天功能(一般非即时聊天)、推送一下App内部新功能...能解释清楚肯定就有货真价实开发经验 使用远程推送 1、获取苹果获得deviceToken-获取手机UDID+应用唯一标识(bundel ID) 2、得到苹果返回deviceToken 3、发送..., 100); [self.window.rootViewController.view addSubview:redV]; // 1.打开后台模式 2.告诉系统是否有新内容更新

3.1K20

地图相关 MapKit框架介绍MKMapView控件对象属性和方法MKAnnotation 大头针模型类大头针view显示类:MKPinAnnotationView 继承于 MKAnnotation

指南针 ---- 方法: 1.以动画方式设置区域,用于地图中心定位到用户所在位置 - (void)setRegion:(MKCoordinateRegion)region animated:(BOOL...:(NSString *)identifier; ---- 代理方法:MKMapViewDelegate 1.完成用户位置更新时候会调用此方法,参数 MKUserLocation:用户定位位置大头针模型...,(就是默认周围放光定位大头针),专门控制定位大头针显示,可获取大头针位置信息(用户定位信息) 重要属性,可以获取地图上经纬度 @property (readonly, nonatomic, nullable...设置代理 获取数据 self.mapView.delegate = self; //代理方法,完成用户位置更新时候会调用 - (void)mapView:(MKMapView *)mapView didUpdateUserLocation...获取用户定位中心点经纬度 CLLocationCoordinate2D center = self.mapView.userLocation.location.coordinate; //2.

4.7K70

iOS-世界那么大,CoreLocation带你去看看

开启标准定位服务使用是GPS/WIFI定位,精确度较高,关闭应用程序就无法获取位置,而开启显著位置变化定位服务使用基站定位(必须有电话模块),当应用程序被关闭时,也可以接受到位置通知,并让app进入后台处理...,但是定位精确度没有标准定位服务高,耗电少,定位更新频率依照基站密度而定,只要在基站范围内就显示基站位置,当进入另一个基站范围后更新。...四. iOS9/iOS8/iOS8之前定位适配 1. iOS8.0之前是默认请求授权,需要在plist文件中加入 ?...(2) 如果获取位置不是精确度最高那个,也会在定位超时后,通过代理告诉外界....第三框架LocationManager 第三框架使用非常简单,GitHub上已经讲解很清晰。LocationManager是将CLLocationManager由代理向block封装转换。

1.4K90

iOS-屏幕适配实现(SnapKit)

SnapKit简介 SnapKit是一个优秀第三自适应布局库,它可以让iOS、OS X应用更简单地实现自动布局(Auto Layout) 下载链接 SnapKit SnapKit配置 使用pods方式引入类库....offset(50)两级组合,显示找到父view左边位置,再向右(X轴)移动50点 给控件添加、更新约束、引用约束、停用、启用 添加新约束 testView.snp.makeConstraints...{ (make) in } 删除控件以前所有约束,添加新约束 testView.snp.remakeConstraints { (make) in } 更新约束,写哪条更新哪条,其他约束不变...= nil override func viewDidLoad() { super.viewDidLoad() let testView = UIView()...中心点 center、centerX、centerY 边界 edges //iOS8之后Masonry新出了几个属性: //距离边框距离,等同于选中StoryboardConstrain to

30710

(转)iOS开发之UICollectionViewController系列(一) :Ready CollectionViewController

UITraitEnvironment 是iOS8以后才引入协议接口,它和Size Class有关,这个类封装了像水平和竖直方向Size Class等信息,iOS8UIKit中大多数UI基础类...UIContentContainer 是iOS8之后添加协议,也是和Size Class相关协议。该协议中方法可以帮助你适配视图控制器上内容,比如内容尺寸和位置等。...当创建自定义视图控制器或者展示控制器时,你可以重写默认实现方法来调整你视图控制器内容。例如,你可以使用该方法来调整子视图控制器大小或位置。...2.当从nib文件或者Storyboard中加载集合视图时,集合视图数据源(Data source)和代理对象(Delegate Object)是从nib或者Storyboard中获取。...今天这篇博客内容算开个头,后边回由浅入深,慢慢更新博客。

5.5K40

深入剖析Auto Layout,分析iOS各版本新增特性

约束 Auto Layout你视图层级里所有视图通过放置在它们里面的约束来动态计算它们大小和位置。..., NSLayoutAttributeHeight 属性 视图中心 NSLayoutAttributeCenterX, NSLayoutAttributeCenterY 属性 视图基线,在视图底部上方放置文字地方...调用了setNeedsLayout后不能通过frame改变视图和控件 为了让在设置了setTranslatesAutoresizingMaskIntoConstraints:NO视图里更改frame立刻生效而执行了没有标记立刻刷新...block里更新布局让Engine执行导致Ambiguous Layouts这种权重相同冲突崩溃情况发生。...NSLayoutAttribute枚举值也有相应更新 //UIView3个Margin相关API @property (nonatomic) UIEdgeInsets layoutMargins

1.2K10

iOS开发之窥探UICollectionViewController(一) -- Ready Your CollectionViewController

UITraitEnvironment 是iOS8以后才引入协议接口,它和Size Class有关,这个类封装了像水平和竖直方向Size Class等信息,iOS8UIKit中大多数UI基础类...UIContentContainer 是iOS8之后添加协议,也是和Size Class相关协议。该协议中方法可以帮助你适配视图控制器上内容,比如内容尺寸和位置等。...当创建自定义视图控制器或者展示控制器时,你可以重写默认实现方法来调整你视图控制器内容。例如,你可以使用该方法来调整子视图控制器大小或位置。...2.当从nib文件或者Storyboard中加载集合视图时,集合视图数据源(Data source)和代理对象(Delegate Object)是从nib或者Storyboard中获取。...今天这篇博客内容算开个头,后边回由浅入深,慢慢更新博客。

1.6K60

iOS学习——UIView研究

2个 属性 8个 UIView各类扩展 视图几何相关扩展 UIView (UIViewGeometry),主要定义了视图上位置和区域相关一些属性和方法 视图层次结构相关扩展 UIView (UIViewHierarchy...) ,主要提供添加单个/多个、移除单个/多个约束方法 视图上约束相关扩展 UIView (UIConstraintBasedLayoutCoreMethods),主要提供4种约束更新方法 视图上约束共存相关扩展...视图布局引导相关扩展 UIView (UILayoutGuideSupport),主要定义了视图布局所需一些属性,类似中心点、上下左右宽高等属性 视图约束布局调试相关扩展 UIView (UIConstraintBasedLayoutDebugging...< 向后翻页动画过渡效果. 81 UIViewAnimationOptionTransitionCurlDown = 4 << 20, //!...282 /** 对现在有布局有调整更改后,使用这个方法进行更新 */ 283 - (void)setNeedsLayout; 284 /** 强制进行更新layout */ 285 - (void)layoutIfNeeded

2.7K80

iOS8新特性之基于地理位置消息通知UILocalNotification

苹果在WWDC2014上正式公布了全新iOS8操作系统。 界面上iOS8与iOS7相比变化不大,只是在功能方面进行了完好。...iOS8更新和公开了非常多接口,当中有一项本地消息通知UILocalNotification,大家肯定都不陌生。 可是在iOS8中对其进行了优化和改进。...如今它能够依据地理位置发起消息通知,即我们在App中设置好一个坐标(经纬度)和半径(范围),当装有本App设备进入本区域后,App就会发出一个消息通知。...详细操作例如以下: 1.要导入我们须要类库CoreLocation.framework 2.登记位置信息,获取用户授权 CLLocationManager *locMan = [[CLLocationManager...scheduleLocalNotification:localNotification]; } //- (instancetype)initWithCenter:(CLLocationCoordinate2D)center //区域中心

37440

【死磕iOS】处理不等高TableViewCell小花招

方案三:利用iOS8新特性 想知道妹纸爱你有多深?...知道这个干嘛,直接通过iOS8,让妹纸爱上你不就好啦~ 其实,iOS8已经提供了直接通过XIB让Cell高度自适应方法了,只要简单拖拖线,根本木有必要计算Cell高度,就可以搞定不等高Cell 第一步...方案二:在请求到数据后马上计算 示例代码:见课题一案二 说明:在这里进行计算相对于方案一来说进步了很多,在这里计算是不错选择哦!...所以,该方法请选择使用… 结论 处理不等高TableViewCell,优先使用iOS8新特性(课题一案三) 不能使用iOS8新特性情况下,优先选择课题一案一+课题二案三组合 不能用上面两种,优先选择使用课题一案一...+课题二案二组合~

1.3K80
领券