美文网首页iOS DeveloperiOS 开发 程序员
开发过程中遇到的实际问题

开发过程中遇到的实际问题

作者: 喵小帅 | 来源:发表于2016-04-25 15:22 被阅读498次

    对用户进行定位操作

    在现在的app中,定位操作的运用越来越广泛了,无论是外卖类APP进行点餐送餐,还是不同区域的交友类app寻找附近的人,都需要运用到定位操作,关键代码如下所示:

    -(void)locationStart{
    
        //判断定位操作是否被允许
    
        locationString = @"";
    
        if([CLLocationManager locationServicesEnabled]) {
    
            _locationManager = [[CLLocationManager alloc] init] ;
    
            _locationManager.delegate = self;
    
            //设置定位精度
    
            _locationManager.desiredAccuracy=kCLLocationAccuracyBest;
    
            _locationManager.distanceFilter = kCLLocationAccuracyHundredMeters;//每隔多少米定位一次(这里的设置为每隔百米)
    
            if (IOS8) {
    
                //使用应用程序期间允许访问位置数据
    
                [_locationManager requestWhenInUseAuthorization];
    
            }
    
            // 开始定位
    
            [_locationManager startUpdatingLocation];
    
        }else {
    
            //提示用户无法进行定位操作
    
            NSLog(@"%@",@"定位服务当前可能尚未打开,请设置打开!");
    
        }
    }
    

    利用NavigationViewController进行页面的跳转

    当NavigationViewController跳转有了特殊的需求的时候,比如说需要从A push到C,但是Cpop回到的是B,那就可以通过一下代码来实现

    在A跳转到C时这样跳转:
    NSMutableArray *array = [NSMutableArray arrayWithArray:self.navigationController.viewControllers];
    [array addObject:controllerB]; //加入B
    [array addObject:controllerC]; //加入C
    [self.navigationController setViewControllers:array animated:YES]; 
    

    NavigationViewController的小细节

    对于系统自带的NavigationViewController,不知道小伙伴们有没有注意到一点,就是底部有一条黑线,有时候会影响美感,如下图所示:

    有黑线图片.png

    可能直接这么看不是很清楚,那么利用下系统自带的攻击来看下结构图

    有黑线结构图.png

    现在通过图片能够清楚地看到了那条黑线,如果小伙伴们想把这条黑线隐藏了就可以采用以下的代码来试下:

     UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:[ViewController new]];
        NSArray *arry = [nav.navigationBar subviews];
        for (UIView *view in arry) {
            NSString *viewName = NSStringFromClass([view class]);
            if ([viewName isEqualToString:@"_UINavigationBarBackground"]) {
                UIImageView *line = [view valueForKey:@"_shadowView"];
                line.hidden = YES;
            }
        }
        self.window.rootViewController = nav;
    

    代码改成这样之后效果图如下:

    无黑线图片.png

    如果觉得还是不够清晰的话,可以通过结构图来进行查看

    无黑线结构图.png

    是不是觉得很神奇,runtime真的很强大,能够解决一些本来很棘手的问题,通过runtime找出相关属性进行修改操作,就能达到想要的效果。

    相关文章

      网友评论

        本文标题:开发过程中遇到的实际问题

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