iOS開發筆記11:表單鍵盤遮擋、浮點數價格格式化顯示、修改UIPickerView內容樣式、View Debugging,debugger

來源:互聯網
上載者:User

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元素的約束設定問題。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.