热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在UItextfield的右视图上添加一个按钮,使文本不应与按钮重叠

如何解决《在UItextfield的右视图上添加一个按钮,使文本不应与按钮重叠》经验,为你挑选了2个好方法。

我可以使用右视图在UITextField右侧的文本字段中添加一个按钮,但是文本在按钮上重叠.下面是右视图按钮的代码

        UIView.commitAnimations()
        var btnColor = UIButton(type: .Custom)
        btnColor.addTarget(self, action: #selector(self.openEmoji), forControlEvents: .TouchUpInside)
        btnColor.frame = CGRect(x: CGFloat(textField.frame.size.width - 25), y: CGFloat(5), width: CGFloat(25), height: CGFloat(25))
        btnColor.setBackgroundImage(UIImage(named: "send.png"), forState: .Normal)
        textField.addSubview(btnColor)

请让我知道如何从右侧视图填充文本.



1> Anbu.Karthik..:

使用UITextField 的rightView属性.基本上,有两个属性(相应的这一个和leftView)允许您在UITextField中放置自定义视图/控件.您可以通过rightViewMode/leftViewMode属性控制是否显示这些视图:

textField.rightView = btnColor
textField.rightViewMode = .unlessEditing

例如

let button = UIButton(type: .custom)
button.setImage(UIImage(named: "send.png"), for: .normal)
button.imageEdgeInsets = UIEdgeInsetsMake(0, -16, 0, 0)
 button.frame = CGRect(x: CGFloat(txt.frame.size.width - 25), y: CGFloat(5), width: CGFloat(25), height: CGFloat(25))
button.addTarget(self, action: #selector(self.refresh), for: .touchUpInside)
textField.rightView = button
textField.rightViewMode = .always

并将行动称为

@IBAction func refresh(_ sender: Any) {
}



2> 小智..:

创建UITextField扩展并在其中添加以下方法,您可以根据需要更改UIButton代码。

func setRightViewIcon(icon: UIImage) {
    let btnView = UIButton(frame: CGRect(x: 0, y: 0, width: ((self.frame.height) * 0.70), height: ((self.frame.height) * 0.70)))
    btnView.setImage(icon, for: .normal)
    btnView.imageEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 3)
    self.rightViewMode = .always
    self.rightView = btnView
}


推荐阅读
author-avatar
幽兰伴竹
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有