【Swift 2.2】iOS開發筆記(三)
阿新 • • 發佈:2018-12-30
1、UITableView 中呼叫 UIButton 的 setTitle 會閃
滾動列表時比較明顯,解決辦法: buttonType 改成 custom 即可,但是這樣一來 UIButton 的高亮效果也沒了,但可以自己手動配置 State Config
2018-02-09 更新,方法二:
UIView.performWithoutAnimation { self.cancelButton.setTitle(Localized.DIALOG_BUTTON_CANCEL, for: .normal) self.cancelButton.layoutIfNeeded() }
2、監聽 UITextField 文字改變
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { let text = NSString(string: textField.text!).stringByReplacingCharactersInRange(range, withString: string) }
3、模擬較差的網路
iPhone 設定 >> Developer >> Network Link Conditioner
4、如果支援 iOS 9 多工分屏,在 iPad 上將無法控橫豎屏相關的設定(shouldAutorotate、supportedInterfaceOrientations 都不會回撥)
5、UINavigationController 替換當前 UIViewController
extension UINavigationController { func replaceLastViewController(controller: UIViewController) { let stackViewControllers = NSMutableArray(array: self.viewControllers) stackViewControllers.removeLastObject() stackViewControllers.addObject(controller) setViewControllers((stackViewControllers as NSArray) as! [UIViewController], animated: true) } }
如果先 pushViewController 再 removeFromParentViewController 當前 ViewController 返回的 title 會錯亂
6、自定義靜態 Cell 左右邊距對齊的問題
直接加約束設定 15 在 iPad 上顯示會有問題,辦法: 在 Storyboard/xib 中設定自定義 Cell 和 contentView 的 Preserve Superview Margins 為 true,然後設定 label 的 leadingMargin 為 0 ,注意是要勾選 margin:
7、Swift 3.0 判斷泛型型別
if T.self == Class.self {
}