我正在設計屏幕像一個窗體,包含幾個UITextFields
使用AutoLayout。我只想在UITextFields
的底部設置邊框。我已使用CALayer
設置邊框。但UITextField
在方法viewDidAppear
中佔據了其高度(在應用自動佈局之後),因此在viewDidAppear
中向UITextField
添加邊框使其看起來好像其閃爍。那麼是否有其他方式設置邊界UITextFeild
底部AutoLayout。與AutoLayout的UITextField邊界閃爍
回答
class CustomTextField: UITextField {
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)!
self.commonInit()
}
override init(frame: CGRect) {
super.init(frame: frame)
self.commonInit()
}
func commonInit() {
self.borderStyle = .none //To remove default border.
let bottomBorder = UIView()
bottomBorder.frame.size = CGSize(width: self.frame.size.width, height: 1)
bottomBorder.frame.origin = CGPoint(x: 0, y: self.frame.size.height - 1)
bottomBorder.backgroundColor = UIColor.lightGray
bottomBorder.autoresizingMask = [.flexibleWidth, .flexibleTopMargin]
self.addSubview(bottomBorder)
}
}
最後我用自動版式創建CustomUITextField實現它。只需將上面的類應用於界面構建器中的UITextField。
步驟 - 選擇文本框 - >顯示屬性檢查器右側面板並選擇虛線邊框樣式。 接下來將uilabel拖入場景中,並將其設置爲1.0和寬度,然後保留文本框的底部。所以你的問題解決了。這可能會幫助你。
在這種情況下,使用高度爲1.0的UILabel/UIView作爲邊框是唯一的選擇。 – Tejas
如果我對你有所瞭解,你需要做的所有事情都是在上述方法中調用方法「繪製邊框」而不是viewDidAppear
。我想它可以解決你的問題。
override func viewDidLayoutSubviews() {
//A UIViewController's overrode method
//call you method here
}
該方法在視圖出現之前和子視圖佈局之後調用。當你在工作 - 改變我的意思 - 圖層時,你應該總是使用它,而不是viewDidLoad
,例如。
希望它能幫助:)
如果您使用模擬器來測試。它看起來像它的閃爍,但它不是。
如果您將模擬器縮放到25%。滾動時會出現1px線,並且 消失,因此您擁有的屏幕分辨率比實際設備分辨率低 。
將模擬器縮放到100%進行測試。 cmd + 1
實際上它在模擬器和實際設備上都閃爍。發生這種情況是因爲自動佈局完全應用於方法viewDidAppear中的UITextField。在viewDidLayoutSubviews中設置邊界不是最佳做法。 – Tejas
- 1. 無邊界形式閃爍陰影
- 2. 使UITextField背景閃爍
- 3. 視圖的閃爍邊框
- 4. 禁用UITextField中的閃爍光標?
- 5. 停止iOS中閃爍的UITextField光標
- 6. 的UITextField的邊界Flash的
- 7. Iframe與pdf黑色閃爍(閃爍)
- 8. 使用Autolayout將UITextField放在UILabel旁邊
- 9. X閃爍div邊框?
- 10. 懸停時按鈕會閃爍閃爍的黑色邊框?
- 11. BottomSheetBehavior與GridView閃爍
- 12. NSWindow與childwindows閃爍
- 13. 閃爍div與jquery
- 14. Symfony OutputFormatterStyle「閃爍」不閃爍
- 15. 閃爍或閃爍bgcolor
- 16. UIAlertViewController閃爍/閃爍簡要
- 17. 停止閃爍從閃爍
- 18. 閃爍的動畫與UIViewAnimationTransitionFlip
- 19. 滾動上的閃爍側邊欄
- 20. 與Chrome一起懸停的白色閃爍/閃爍
- 21. Android閃爍和閃爍的工具
- 22. CSS閃爍/閃爍的標誌把戲
- 23. Android上的JQM和PhoneGap閃爍/閃爍
- 24. MS邊緣CSS過渡閃爍
- 25. 動態閃爍文本框邊框
- 26. 面板閃爍與Pictureboxes
- 27. 問題與gluint和閃爍
- 28. MFC:閃爍問題與GDI +
- 29. 模板閃爍與流星
- 30. JTable與單元格閃爍
你用UITextField底部的簡單UIView試過了嗎?我的意思是把UIView的高度說成1px,然後對它應用約束,以便它總是附着在UITextField的底部。 –
謝謝,我們可以使用UITextFeild底部的UIView作爲邊框,但我必須切換textFieldDidBeginEditing和textFieldDidEndEditing之間的邊界顏色,因此我使用的是CALayer。 – Tejas
你不能在這些方法中更改UIView的顏色嗎? –