第一次寫遇八,想給大家分享幾個(gè)iOS項(xiàng)目中可能會(huì)使用到的小技巧
1、如何在app中打開設(shè)置中的app設(shè)置界面
網(wǎng)上有很多關(guān)于如何打開wifi設(shè)置、定位設(shè)置的方法,但是都沒有提過如何打開app自己的設(shè)置界面,這里我來教教大家
打開設(shè)置中的各種設(shè)置界面的方法:
NSURL*url=[NSURL URLWithString:@"prefs:root=WIFI"];
[[UIApplication sharedApplication] openURL:url];
對(duì)應(yīng)的不同設(shè)置的url
About —prefs:root=General&path=About
Accessibility —prefs:root=General&path=ACCESSIBILITY
Airplane Mode On —prefs:root=AIRPLANE_MODE
Auto-Lock —prefs:root=General&path=AUTOLOCK
Brightness —prefs:root=Brightness
Bluetooth —prefs:root=General&path=Bluetooth
Date & Time —prefs:root=General&path=DATE_AND_TIME
FaceTime —prefs:root=FACETIME
General —prefs:root=General
Keyboard —prefs:root=General&path=Keyboard
iCloud —prefs:root=CASTLE
iCloud Storage & Backup —prefs:root=CASTLE&path=STORAGE_AND_BACKUP
International —prefs:root=General&path=INTERNATIONAL
Location Services —prefs:root=LOCATION_SERVICES
Music —prefs:root=MUSIC
Music Equalizer —prefs:root=MUSIC&path=EQ
Music Volume Limit —prefs:root=MUSIC&path=VolumeLimit
Network —prefs:root=General&path=Network
Nike + iPod —prefs:root=NIKE_PLUS_IPOD
Notes —prefs:root=NOTES
Notification —prefs:root=NOTIFICATIONS_ID
Phone —prefs:root=Phone
Photos —prefs:root=Photos
Profile —prefs:root=General&path=ManagedConfigurationList
Reset —prefs:root=General&path=Reset
Safari —prefs:root=Safari
Siri —prefs:root=General&path=Assistant
Sounds —prefs:root=Sounds
Software Update —prefs:root=General&path=SOFTWARE_UPDATE_LINK
Store —prefs:root=STORE
Twitter —prefs:root=TWITTER
Usage —prefs:root=General&path=USAGE
VPN —prefs:root=General&path=Network/VPN
Wallpaper —prefs:root=Wallpaper
Wi-Fi —prefs:root=WIFI
Setting —prefs:root=INTERNET_TETHERING
第一步:設(shè)置URL Schemes
第二步:在需要打開 app 設(shè)置界面的地方
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]])
{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
NSURL*url2=[NSURL URLWithString:@"prefs:root=剛剛填寫的URL Schemes"];
[[UIApplication sharedApplication] openURL:url2];
}
2、如何及時(shí)關(guān)閉UIMenuController的顯示
通常我們會(huì)在APP中的tableview使用UIMenuController,網(wǎng)上提到過很多使用的方法;這里簡(jiǎn)單貼下代碼
-(void)pressCell:(UIGestureRecognizer *)gesture
{
[self becomeFirstResponder];
if (gesture.state == UIGestureRecognizerStateBegan) {
//這里要注意一下要判斷長(zhǎng)按手勢(shì)的狀態(tài)恬吕,不然會(huì)觸發(fā)兩次這里面的方法
UIMenuController *menuController = [UIMenuController sharedMenuController];
UIMenuItem *copyItem = [[UIMenuItem alloc] initWithTitle:@"復(fù)制" action:@selector(menuCopyBtnPressed:)];
menuController.menuItems = @[copyItem];
[menuController setTargetRect:_contentV.frame inView:_contentLabel];
[menuController setMenuVisible:YES animated:YES];
[UIMenuController sharedMenuController].menuItems=nil;
}
}
-(void)menuCopyBtnPressed:(UIMenuItem *)menuItem
{
[UIPasteboard generalPasteboard].string = _contentLabel.text;
}
-(BOOL)canBecomeFirstResponder
{
return YES;
}
-(BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
if (action == @selector(menuCopyBtnPressed:)) {
return YES;
}
return NO;
}
有了上面的代碼就可以成功的在tableview中長(zhǎng)按cell的某個(gè)文本實(shí)現(xiàn)顯示“復(fù)制”的黑色彈框了,但是你會(huì)發(fā)現(xiàn)這個(gè)黑框有時(shí)候不能夠及時(shí)消失须床。即便是跳轉(zhuǎn)到了另外一個(gè)控制器铐料,它也會(huì)等幾秒鐘再消失。但是我們可以看QQ空間的彈窗豺旬,是滑動(dòng)一下就消失了钠惩,于是我們需要在
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
這里進(jìn)行一個(gè)操作
if ([UIMenuController sharedMenuController].isMenuVisible) {
[[UIMenuController sharedMenuController] setMenuVisible:NO animated:YES];
}
這樣,當(dāng)tableview滾動(dòng)的時(shí)候族阅,顯示的UIMenuController就會(huì)及時(shí)消失啦
3篓跛、如何讓UIAlertview顯示為豎排(兩個(gè)按鈕也可以)
讓UIAlertview顯示為豎排的最簡(jiǎn)單方法就是定義超過2個(gè)按鈕;比如像這樣
代碼:
_pfAlert = [[UIAlertView alloc]initWithTitle:@"分享成功" message:@"覺得ThinkSNS如何?" delegate:self cancelButtonTitle:nil otherButtonTitles:@"太棒了坦刀,我要賞好評(píng)",@"不好愧沟,我要去吐槽",@"還沒發(fā)現(xiàn)亮點(diǎn),再用用",nil];
但是鲤遥,也許會(huì)有奇怪的需求需要實(shí)現(xiàn)兩個(gè)按鈕也要豎著排沐寺,比如這樣:
這時(shí)候,我們需要做個(gè)簡(jiǎn)單的操作盖奈,就是把按鈕的文字設(shè)置為7個(gè)漢字以上的長(zhǎng)度混坞,比如圖中的"立即清空并不再提醒"或者"12345678910"
UIAlertView *alertV = [[UIAlertView alloc]initWithTitle:@"溫馨提示" message:@"已到您設(shè)定的自動(dòng)清空緩存日期,是否立即清空?(清空內(nèi)容為:app內(nèi)的緩存圖片、音頻究孕、視頻以及部分文字信息啥酱;不包括聊天中的文字信息)" delegate:self cancelButtonTitle:@"稍后清空" otherButtonTitles:@"立即清空并不再提醒", nil];
后面還會(huì)更新幾個(gè)小技巧啦,喜歡的朋友可以收藏一下