gpt4 book ai didi

ios - 在 textbegin 上更改文本字段的底部 View 颜色?

转载 作者:行者123 更新时间:2023-11-28 07:59:36 26 4
gpt4 key购买 nike

我在 UI 下方创建了登录屏幕。我在每个文本字段下方添加了 UIView 并更改了一些颜色 View 。 enter image description here

为了改变 View 的一些初始颜色,我为 UIView 创建了一个自定义类并在其中添加了下面的代码

import Foundation

class BottomView:UIView {

override func draw(_ rect: CGRect) {

let topRect = CGRect(x:0, y:0, width : 20, height: rect.size.height);
// Fill the rectangle with grey
UIColor.darkGray.setFill()
UIRectFill(topRect)

}
}

现在我希望当用户点击或聚焦时,文本字段的文本字段颜色应更改为全色。为此,我使用了下面的代码。

 func textFieldDidBeginEditing(_ textField: UITextField) {

if textField == textFieldFirstName {

UIView.animate(withDuration: 1.0, delay: 0.0, options:[.repeat, .autoreverse], animations: {
self.bottomViewEmail.backgroundColor = UIColor.green
}, completion:nil)

}


}

现在它改变了 View 的颜色,但不是从一开始就改变了。它从已经有颜色的地方改变了 UIView 的颜色。

所以请建议我该怎么做?

我还希望当用户移动到密码时,先前文本字段 View 的颜色应该与最初相同。

最佳答案

我认为背景颜色和填充颜色有一些冲突

仅尝试这种方式使用填充颜色将其添加到 View 的子类

func fillColor(with color:UIColor,width:CGFloat) {

let topRect = CGRect(x:0, y:0, width : width, height: self.bounds.height);

color.setFill()
UIRectFill(topRect)

}

override func draw(_ rect: CGRect) {

self.fillColor(with: .gray, width: 20)

}

来自 UIViewController 类

func textFieldDidBeginEditing(_ textField: UITextField) {

if textField == textFieldFirstName {

UIView.animate(withDuration: 1.0, delay: 0.0, options:[.repeat, .autoreverse], animations: {
self.bottomViewEmail.fillColor(with: .green, width: self.bottomViewEmail.bounds.width)

}


}

希望对你有帮助

关于ios - 在 textbegin 上更改文本字段的底部 View 颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47010821/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com