美文网首页
iOS开发过程中遇到的问题记录

iOS开发过程中遇到的问题记录

作者: 段佳欢 | 来源:发表于2018-03-30 14:20 被阅读143次
  • 一、使用addChildViewController方法,在父控制器上添加多个子控制器;将子控制器的view添加在scrollView上;如果父控制器是导航的第一个控制器,并且在BaseViewController里面自定义了返回按钮,实现了UIGestureRecognizerDelegate代理;当滑动scrollView后,再点击子控制器的视图push,会出现界面卡住现象

解决方法:

#pragma mark - UIGestureRecognizerDelegate

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
    //当在BaseViewController里面自定义了返回按钮,是导航的第一个控制器,这里需要再判断parentViewController是第几个,如果是第一个必须返回NO,否则scrollView滑动手势和侧滑手势会有冲突
    BOOL isRootViewController = (self == self.navigationController.viewControllers.firstObject || self.parentViewController.navigationController.viewControllers.firstObject);

    if (isRootViewController) {
        return NO;
    } else {
        return YES;
    }
}

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    return YES;
}

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    return [gestureRecognizer isKindOfClass:UIScreenEdgePanGestureRecognizer.class];
}
  • 二、问题描述: iOS开发,定位当前所在地理位置偏移,坐标转换,有时会有偏差

分析:
在开发中经常会遇到定位当前位置,而且不需要有地图之类的一系列功能,一般都会用CLLocationManger来定位。但是会发现定位出来的经纬度地理反编码之后和自己当前的位置是有偏差的。这是因为坐标体系不一样。

那就让我们来看看开发者能接触到哪些坐标体系:

地球坐标,火星坐标(iOS mapView,高德,国内google,搜搜,阿里云,腾讯),百度坐标,还有一些其他自己用的一套算法偏移的坐标。由此看来火星坐标是用的最多的坐标体系。

而CLLocationManager得到的是地球坐标,要经过转换成火星坐标。转换之后进行地理反编码得到的就是当前的位置。

但是使用MKMapView得到的就是火星坐标。可以直接反地理编码然后得到当前的所在的位置。

用MKMapView来写的一份定位当前位置:https://github.com/smallqiang/MMLocationManager

使用CLLocationManager来定位当前位置:https://github.com/HQiaoOne/CLLocationManagerDeviation

其中关于iOS8以后需要新添加的内容就不再赘述了,CLLocationManagerTransform的demo里面也有。

  • 三、使用UIPickerView出现代理方法
  • (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
    只在第一个分组滚动会触发,其他分组不触发

解决:
addSubview之后 [self.pickerView reloadAllComponents];或者单独reload分组

  • 四、Xcode真机测试没问题,打包后安装闪退

遇到的奇葩问题是:我做好了项目,连接到电脑上,真机测试,可以运行,但是打包后安装到真机上就闪退,更奇葩的是把项目拷到别人的电脑上,让别人帮忙打包,打出来的包可以安装,搞了两天,一直在静态库和动态库上纠结了,最后没想到是证书的问题,真是醉了,下面的连接是解决的办法,把打包用到的证书从钥匙串中的信任改为系统默认就可以了!

相关文章

  • iOS开发过程中遇到的问题(持续更新)

    记录自身在iOS开发过程中遇到的问题,方便以后经常查看,同时也给大家做个参考。 1、collectionview打...

  • iOS14适配

    开发中遇到的问题, iOS14已经发布,记录一下开发中遇到的问题.不定时更新,欢迎大家评论补充. iOS14适配总...

  • ios自动订阅开发

    参考 iOS 自动订阅开发网上的文章很多,这里主要记录在开发过程中遇到的问题,开发流程和内购一样,主要的区别在这...

  • IOS 生成证书

    第一次接触 IOS 开发,将遇到的问题做记录。 前提: 1、已经注册 IOS 开发者(付费) ...

  • IOS开发小建议

    在IOS开发中我们会遇到各种各样的问题,这篇文章的目的就是记录开发过程中遇到的各种坑,和相应的解决方法。一来为了自...

  • 评审手机端开发手记

    记录开发专家评审过程中手机端遇到的相关问题 -----------------------------------...

  • iOS Swift开发总结-- 【持续更新】

    此文章将记录我在iOS Swift开发过程中遇到的问题及相关知识技术点 ,方便自己以后查阅..... 博客原文:h...

  • Jenkins填坑

    前言 记录使用Jenkins打包iOS过程中所遇到的各种问题 There are no schemes in wo...

  • xcode8 真机测试 NSLog打印不显示

    仅记录开发过程中遇到的问题 宏定义打印函数

  • Vue开发知识

    主要记录一些Vue开发过程中遇到的问题

网友评论

      本文标题:iOS开发过程中遇到的问题记录

      本文链接:https://www.haomeiwen.com/subject/wyhicftx.html