iT邦幫忙

2022 iThome 鐵人賽

DAY 12
0
自我挑戰組

iOS Junior的菜雞之路系列 第 12

踩坑合集

  • 分享至 

  • xImage
  •  

現在蠻常遇到的問題都是畫面處理不好,就有些坑其實可以分享

  • UIStackView
    • 當有元件需要隱藏時候,使用UIStackView不乏是個好選擇
      因為他可以幫你自動縮減高度,免得自己在那邊算每個View彼此之間的距離

    • 不過使用UIStackView也有一些小眉角

      • 當把元件丟進去UIStackView就必須根據UIStackView的規則
      • 像是你沒有辦法在裡面再調整跟UIStackView的間距,他一定會是貼齊整個UIStackView
      • 彼此的距離也只有spacing可以設定
        • 如果需要再新增額外的空間,就需要另外再放一個空的View進去增加間距
      • 如果stackView有包括到icon且後面有Label,那麼需要注意如果需要UIStackView按照Label的字數所隨之增長,那麼就會需要注意有時候因為左邊icon的高度已經被固定,變成UIStackView沒有辦法合理的長出來
        • 這個時候可以再iCon圖層外面再加一層View包住iCon的View,這樣外層的高度隨著文字增長
  • UITableView
    • TableView上方的空白問題
      tableView上方莫名出現一個空白區域,那麼他有可能是
      1. TableView的Style問題
      2. iOS 15 sectionHeaderTopPadding 的問題
      3. TableHeaderView的問題,預設HeaderView出現
    這邊提供是第3種的解決方法
func setupUI() {
    tableView.tableHeaderView = UIView(frame: CGRect(x: 0, y: 0, width: 0, height: CGFloat.leastNonzeroMagnitude))
}
  • UITableView

    • 使用原生TableViewController建立 無法實現Cell自適應高度
      使用原生的TableViewController時,自動創立Xib時,會自動建立預設RowHeight、estimatedRowHeight,但是這樣會限制Cell的高度

    方法1直接刪除estimatedRowHeight、rowHeight

    方法2透過程式設定,會覆蓋掉原本的Xib設定的estimatedRowHeight、rowHeight

    tableView.estimatedRowHeight = UITableView.automaticDimension
    tableView.rowHeight = UITableView.automaticDimension
  • TipsView
    • 這個是之前做過一個TipsView,然後把TipsView放到UITableView裡面,發現按鈕時好時壞
      遇到這個狀況的時候,就還蠻傻眼的,什麼事時好時壞的按鈕,排查按鈕半天也查不出什麼問題,最後在同事的提醒下才發現是TipsView卡進去SectionHeader中間的縫隙中,所以無法使用點擊到

上一篇
首頁升級,加載外部套件
下一篇
中央空調Notification:我想給每個訂閱者一個家
系列文
iOS Junior的菜雞之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言