對用戶進行定位操作
在現在的app中,定位操作的運用越來越廣泛了动雹,無論是外賣類APP進行點餐送餐槽卫,還是不同區(qū)域的交友類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的小細節(jié)
對于系統(tǒng)自帶的NavigationViewController读跷,不知道小伙伴們有沒有注意到一點,就是底部有一條黑線禾唁,有時候會影響美感效览,如下圖所示:
可能直接這么看不是很清楚,那么利用下系統(tǒng)自帶的攻擊來看下結構圖
現在通過圖片能夠清楚地看到了那條黑線荡短,如果小伙伴們想把這條黑線隱藏了就可以采用以下的代碼來試下:
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;
代碼改成這樣之后效果圖如下:
如果覺得還是不夠清晰的話丐枉,可以通過結構圖來進行查看
是不是覺得很神奇,runtime真的很強大掘托,能夠解決一些本來很棘手的問題瘦锹,通過runtime找出相關屬性進行修改操作,就能達到想要的效果。