iOS開發筆記11:表單鍵盤遮擋、浮點數價格格式化顯示、修改UIPickerView內容樣式、View Debugging,debugger
1.表單鍵盤遮擋
應用情境為一個collectionView上有多個textfield、textView供使用者填寫資訊。
之前輸入項較少時,採取的方法比較粗暴,didSelectItemAtIndexPath時,記下collectionViewCell距離螢幕底部的間距,再與鍵盤高度作比較,根據實際情況調整collectionView的contentOffset,但是當輸入項較多時這個方法就不行了,需要計算更多collectionViewCell距離螢幕底部的間距,容易出錯。
《Text Programming Guide for iOS》-Managing the Keyboard一節中介紹瞭解決辦法,這裡由於用了Masonry,不方便直接調整frame,稍微變通下即可
(1)選擇輸入項時記下indexPath,方便後續collectionView滑動操作 這裡需要注意的是,collectionViewCell裡textField、textView的userInteractionEnabled都設定為NO,在使用者選中時才成為第一響應者。 (2)獲得鍵盤高度,根據鍵盤高度對collectionView調整,並滑動到目標cel的位置 (3)鍵盤隱藏時,恢複collectonView的初始約束 2.浮點數價格格式化顯示
有這樣一個應用情境:價格精確顯示到2位小數 ,小數點為0則不顯示,例如99.00顯示為99,99.90顯示為99.9元,直接用NSString的stringWithFormat方法轉換小數點部分的顯示是不符合要求的,首先得到包含2位小數的字串,再特殊處理一下即可將小數部分的0去掉,:
參考:iOS 浮點數去掉小數點之後的0.00以及價格格式顯示
3.修改UIPickerView內容樣式
使用UIPickerView時,預設顯示的內容可能不符合要求,經常是需要修改其內容樣式的,例如文字大小等等,UIPickerView本身是提供了這樣的一個代理方法供我們去自訂
4.View Debugging
Xcode本身提供了一些視圖調試的小工具 ,畫介面的時候調試分析問題很管用,尤其是當介面顯示不正確的時候有助於定位問題。Xcode工具列Debug-View Debugging中能找到這些小工具,從上到下分別是螢幕快照、視圖分層次析以及顯示View的frame等等
(1)螢幕快照顧名思義就是截取螢幕目前狀態儲存為照片了
(2)Capture View Hierarchy這個有助於檢查介面的約束、視圖層次等
(3)Show View Frames/Show Alignment Rectangles用來顯示視圖元素的frame或對齊矩形,個人一般用show View Frames這一選項,最後螢幕上各個UI元素周圍會多出一個矩形,代表其尺寸大小,對一些元素之間布局顯示異常的情況,有助於定位找到UI元素的約束設定問題。