iOS 7以前APP是不能控制調(diào)出設(shè)置界面的,iOS 8利用以下方法可以切換到設(shè)置界面 1[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];但是也是跳轉(zhuǎn)到設(shè)置界面。你想要直接設(shè)置系統(tǒng)語(yǔ)言通過(guò)API是不可能的。
創(chuàng)新互聯(lián)公司從2013年成立,先為二道江等服務(wù)建站,二道江等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為二道江企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
在蘋果手機(jī)的主屏幕,點(diǎn)擊設(shè)置。
請(qǐng)點(diǎn)擊輸入圖片描述
在設(shè)置界面,點(diǎn)擊面容ID與密碼選項(xiàng)。
請(qǐng)點(diǎn)擊輸入圖片描述
這時(shí)需要輸入蘋果手機(jī)的鎖屏密碼。
請(qǐng)點(diǎn)擊輸入圖片描述
4
進(jìn)入面容ID與密碼設(shè)置界面,將USB配件功能打開,這就是iphone開發(fā)者選項(xiàng)設(shè)置的地方。
移動(dòng)界面是通過(guò)xcode開發(fā)的,用的語(yǔ)言是objective?c。
ios開發(fā)的sdk中自帶了很多ui類,以UIButton為例來(lái)說(shuō)明:
UIButton繼承于UIControl基類
UIButton缺省是圓角按鈕,還有圖片按鈕、Info light、Info dark、Contack add、Detail disclosure
Button的點(diǎn)擊事件中獲取點(diǎn)擊Button對(duì)象
- (IBAction) buttonClick:(id)sender
{
//將sender強(qiáng)制轉(zhuǎn)換成Button類型,獲取哪個(gè)按鈕觸發(fā)的點(diǎn)擊事件
UIButton *button = (UIButton *)sender;
}
兩種方法設(shè)置:
LaunchScreen.storyboard
在LaunchScreen.storyboard中拖拽imageView并設(shè)置約束,勾選右側(cè)Use as launch Screen
工程—General—App Icons and Launch Images選項(xiàng)中設(shè)置Launch Screen File為所制作的LaunchScreen.storyboard或者LaunchScreen.xib
Assets.xcassets
設(shè)置LaunchImage
準(zhǔn)備:
各種尺寸啟動(dòng)圖:640 × 960,640 × 1136,750 × 1334,1242 × 2208,(橫平需要2208 ×1242)
iPhone Portrait iOS5,6(1x:320 × 480 pixels, 2x:640 × 960 pixels, Retina 4:640 × 1136 pixels)
iPhone Portrait iOS8,9(Retina HD 5.5”:1242 × 2208 pixels, Retina HD 4.7”:750 × 1334 pixels)
iPhone Landscape iOS 8,9(Retina HD 5.5”:2208 × 1242 pixels)
iPhone Portrait iOS7,9(2x:640 × 960 pixels, Retina 4:640 × 1136 pixels)
iPhone X Portrait iOS 11+ (3x:1125 x 2436 pixels)
配置
工程—General—App Icons and Launch Images選項(xiàng)中設(shè)置Launch Image Source 為L(zhǎng)aunchImage
LaunchScreen.storyboard 取消勾選Use as Launch Screen
置空路徑Launch Screen File
在iOS開發(fā)中,有時(shí)會(huì)有跳轉(zhuǎn)系統(tǒng)設(shè)置界面的需求,例如提示用戶打開藍(lán)牙或者WIFI,提醒用戶打開推送或者位置權(quán)限等。在iOS6之后,第三方應(yīng)用需要跳轉(zhuǎn)系統(tǒng)設(shè)置界面,需要在URL type中添加一個(gè)Prefs值,如下圖:
需要設(shè)置Prefs
設(shè)置跳轉(zhuǎn)有三種方式,每一種的使用場(chǎng)景都不同。 并且你在跳轉(zhuǎn)到系統(tǒng)中自己應(yīng)用下面設(shè)置的時(shí)候,你的應(yīng)用要提前至少申請(qǐng)了某一個(gè)權(quán)限,如通知,定位等。否則,會(huì)引起崩潰。
當(dāng)iOS系統(tǒng)版本 iOS 10.0 時(shí)
當(dāng)iOS系統(tǒng)版本 =iOS 10.0 時(shí)
當(dāng) iOS系統(tǒng)版本 = iOS7時(shí) , 只能跳轉(zhuǎn)到 系統(tǒng)設(shè)置頁(yè)面
當(dāng) iOS系統(tǒng)版本 = iOS8 ,支持跳轉(zhuǎn)到第三方應(yīng)用的設(shè)置界面中
使用prefs:root=bundleID ,bundleID是你第三方應(yīng)用工程的唯一ID
局限性:只支持iOS8,iOS9系統(tǒng),在iOS10系統(tǒng)上,不會(huì)跳轉(zhuǎn)。
在iOS7系統(tǒng)上,僅僅只是跳轉(zhuǎn)到設(shè)置應(yīng)用,不推薦使用。
UIApplicationOpenSettingsURLString字段,是在iOS8上才提供的,支持iOS8,iOS9,iOS10系統(tǒng),推薦使用。
跳轉(zhuǎn)。
而 prefs:root=bundleID和 prefs:root=服務(wù) 都將不起作用。
方式一:prefs:root=某項(xiàng)服務(wù) 適用于 小于 iOS10的系統(tǒng);
方式二:prefs:root=bundleID 適用于 大于等于iOS8系統(tǒng),小于iOS10的系統(tǒng)
方式三:UIApplicationOpenSettingsURLString 適用于 大于等于iOS8的系統(tǒng)
iOS 11更新后很多盆友的導(dǎo)航欄透明度設(shè)置都失效了。在iOS11之前很多常見的用法是
獲取這個(gè)子視圖之后直接修改它的透明度,然后再監(jiān)聽的方法中:
在iOS11之后,由于導(dǎo)航欄的結(jié)構(gòu)改變,導(dǎo)致了導(dǎo)航欄視圖的層級(jí)會(huì)有所改變。這樣的設(shè)置雖然能生效,但是我們的需求是在當(dāng)前界面被Push出來(lái)的時(shí)候,此時(shí)偏移量是0,所以要求導(dǎo)航欄的透明度是0,隨著便宜量變大,讓導(dǎo)航欄的透明度逐漸增加。
此種方法,會(huì)發(fā)現(xiàn)當(dāng)前界面push出來(lái)之后,默認(rèn)的導(dǎo)航欄透明度還是在的,不是透明的狀態(tài),即便我們?cè)?/p>
-(void)viewWillAppear:(BOOL)animated 方法中設(shè)置_barImageView.alpha = 0 也不會(huì)生效。通過(guò)斷點(diǎn)你會(huì)發(fā)現(xiàn),在-(void)viewDidAppear:(BOOL)animated 方法中,_barImageView.alpha 又被賦值等于了1,并且當(dāng)前界面在滾動(dòng)到alpha=0.5時(shí)push到其他界面之后,再pop回當(dāng)前界,會(huì)出現(xiàn)同樣的問(wèn)題,當(dāng)前界面導(dǎo)航欄的透明度也會(huì)先被賦值為1.
實(shí)際上無(wú)論導(dǎo)航欄層級(jí)如何變化,我們只需要知道navigationBar有個(gè)方法setBackgroundImage可以設(shè)置導(dǎo)航欄背景圖,我們可以通過(guò)設(shè)置背景圖的透明度來(lái)改變導(dǎo)航欄的透明度。
1.添加記錄偏移量的成員變量
2.在viewWillAppear方法中設(shè)置navigationBar的
3.在scrollViewDidScroll方法中,根據(jù)偏移量進(jìn)行賦值。
4.在viewWillDisappear方法中取消對(duì)navigationBar.setBackgroundImage的圖片的設(shè)置,恢復(fù)其他界面navigationBar的樣子。
好了,這樣就能達(dá)到我們想要的效果了。如果你想讓滾動(dòng)到某個(gè)便宜量的時(shí)候,修改導(dǎo)航欄的字體顏色和狀態(tài)欄的顏色為白色,還可以在scrollViewDidScroll:(UIScrollView *)scrollView方法中加上:
但是注意如果想讓 [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent 此設(shè)置生效,必須修改info.plist中的View controller-based status bar appearance 為NO,才可以的。
另外,需要在viewWillAppear 和 viewWillDisappear 方法中對(duì) 導(dǎo)航欄的字體顏色和狀態(tài)欄的顏色進(jìn)行修改或者回復(fù)才能保證在 push 或者 pop的時(shí)候不會(huì)影響到其他界面。