对用户进行定位操作
在现在的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找出相关属性进行修改操作,就能达到想要的效果。
网友评论