iOS開發Settings.bundle的使用

Hhl發表於2018-06-29

效果圖

效果圖

步驟

1、建立Settings.bundle

New File->Resource->Settings Bundle

Settings.bundle

2、新增要展示的內容

在Settings.bundle 中en.iproj為多語言時候使用的,暫且不管。我們主要關心的是Root.plist檔案。 這個檔案決定了我們儲存的資料在設定選單裡面顯示的方式,它有6個型別:

Group -- 編組。首選項邏輯編組的標題。 Multi Value -- 多值。下拉式列表。

Values -- 值的集合。
Titles -- 標題的集合,與值一一對應。
複製程式碼

Slider -- 滑塊。取值位於特定範圍內的滑塊。

Minimum Value -- 最小值,Number型別。
Maximum Value -- 最大值,Number型別。
Min Value Image Filename -- 最小值那一端的圖片。
Max Value Image Filename -- 最大值那一端的圖片。

注意:圖片大小必須為21*21,並且要放在Settings.bundle包內(在Finder裡顯示包內容,然後貼上)。
複製程式碼

Text Field -- 文字框。可編輯的文字字串。

Text Field is Secure -- 是否為安全文字。如果設定為YES,則內容以圓點符號出現。
Autocapitalization Style -- 自動大寫。有四個值: None(無)、Sentences(句子首字母大寫)、Words(單詞首字母大寫)、All Characters(所有字母大寫)。
Autocorrection Style -- 自動糾正拼寫,如果開啟,你輸入一個不存在的單詞,系統會劃紅線提示。有三個值:Default(預設)、No Autocorrection(不自動糾正)、Autocorrection(自動糾正)。
Keyboard Type -- 鍵盤樣式。有五個值:Alphabet(字母表,預設)、Numbers and Punctuation(數字和標點符號)、Number Pad(數字皮膚)、URL(比Alphabet多出了.com等域名字尾)、Email Address(比Alphabet多出了@符合)。
複製程式碼

Title -- 標題。只讀文字字串。 Toggle Switch -- 開關。開關按鈕。

Value for ON -- 當開關置為ON時,取得的字串值。
Value for OFF -- 當開關置為OFF時,取得的字串值。
複製程式碼

獲取使用者的設定是通過NSUserDefaults取設定的Identifier為key的值

Demo中Root.plist中的內容

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>StringsTable</key>
	<string>Root</string>
	<key>PreferenceSpecifiers</key>
	<array>
		<dict>
			<key>Type</key>
			<string>PSGroupSpecifier</string>
			<key>Title</key>
			<string>GroupHeader(可以寫一些描述等內容)</string>
		</dict>
		<dict>
			<key>Type</key>
			<string>PSToggleSwitchSpecifier</string>
			<key>Title</key>
			<string>開關</string>
			<key>Key</key>
			<string>isON</string>
			<key>DefaultValue</key>
			<true/>
		</dict>
		<dict>
			<key>Titles</key>
			<array>
				<string>多層1</string>
				<string>多層2</string>
			</array>
			<key>Values</key>
			<array>
				<string>開發Value</string>
				<string>正式Value</string>
			</array>
			<key>Type</key>
			<string>PSMultiValueSpecifier</string>
			<key>Title</key>
			<string>多層</string>
			<key>Key</key>
			<string>rank</string>
			<key>DefaultValue</key>
			<string>多層1</string>
		</dict>
		<dict>
			<key>Type</key>
			<string>PSTitleValueSpecifier</string>
			<key>Title</key>
			<string>版本號</string>
			<key>Key</key>
			<string>00000</string>
			<key>DefaultValue</key>
			<string>1.1.1</string>
		</dict>
		<dict>
			<key>Type</key>
			<string>PSGroupSpecifier</string>
			<key>Title</key>
			<string>第二個GroupHeader(可以寫一些描述等內容),可以顯示很多很多很多很多很多很多很多很多很多很多很多很多很多很多很多很多很多很多很多很多很多很多內容</string>
		</dict>
		<dict>
			<key>Type</key>
			<string>PSTextFieldSpecifier</string>
			<key>AutocapitalizationType</key>
			<string>None</string>
			<key>AutocorrectionType</key>
			<string>No</string>
			<key>DefaultValue</key>
			<string></string>
			<key>IsSecure</key>
			<false/>
			<key>Title</key>
			<string>名稱輸入框</string>
			<key>Key</key>
			<string>textField</string>
		</dict>
		<dict>
			<key>Type</key>
			<string>PSTextFieldSpecifier</string>
			<key>AutocapitalizationType</key>
			<string>None</string>
			<key>AutocorrectionType</key>
			<string>No</string>
			<key>DefaultValue</key>
			<string></string>
			<key>IsSecure</key>
			<true/>
			<key>Title</key>
			<string>密碼輸入框</string>
			<key>Key</key>
			<string>passwordTextField</string>
		</dict>
		<dict>
			<key>Type</key>
			<string>PSSliderSpecifier</string>
			<key>Key</key>
			<string>slider</string>
			<key>DefaultValue</key>
			<integer>5</integer>
			<key>MinimumValue</key>
			<integer>0</integer>
			<key>MaximumValue</key>
			<integer>10</integer>
			<key>MinimumValueImage</key>
			<string>下箭頭</string>
			<key>MaximumValueImage</key>
			<string>上箭頭</string>
		</dict>
	</array>
</dict>
</plist>

複製程式碼

參考連結https://blog.csdn.net/nogodoss/article/details/21938771

相關文章