zoukankan      html  css  js  c++  java
  • 自定义搜索框-输入框光标不贴边

    //

    //  RBCustomTextField.swift

    //

    //  Created by Touch on 16/4/27.

    //  Copyright © 2016年 renrenbx. All rights reserved.

    //

    import Foundation

    class RBCustomTextField: UITextField {

        

        override init(frame: CGRect) {

            super.init(frame: frame)

        }

        

        // 编辑状态内容显示位置

        override func editingRectForBounds(bounds: CGRect) -> CGRect {

            super.editingRectForBounds(bounds)

            var newBounds = bounds

            if self.leftView?.frame.size.width > 0{

                newBounds.origin.x = bounds.origin.x + (self.leftView?.frame.size.width)!

            }else{

                newBounds.origin.x = bounds.origin.x + 8

            }

            newBounds.origin.y = bounds.origin.y + 1

            return newBounds

        }

        

        // 解决输入问题位置偏移问题

        override func drawTextInRect(rect: CGRect) {

            super.drawTextInRect(CGRect(x: 8, y: self.frame.origin.y + 5.5, 0, height: 0))

        }

        

        // 占位符偏移

        override func placeholderRectForBounds(bounds: CGRect) -> CGRect {

            super.placeholderRectForBounds(bounds)

            echo("self.frame",self.frame)

            echo("bounds",bounds)

            var newBounds = bounds

            newBounds.origin.x = bounds.origin.x + 8

    //        newBounds.origin.y = 3

            echo("newBounds",newBounds)

            return newBounds

        }

        

        // 解决占位符位置靠上问题

        override func drawPlaceholderInRect(rect: CGRect) {

            super.drawPlaceholderInRect(CGRect(x: 0, y: self.frame.size.height * 0.5 - 1, 0, height: 0))

        }

        

        // 左视图 位置

        override func leftViewRectForBounds(bounds: CGRect) -> CGRect {

            super.leftViewRectForBounds(bounds)

            

            let newBounds = CGRect(x: 0, y: 0, self.frame.size.height, height: self.frame.size.height)

            return newBounds

        }

        

        // 右视图 位置

        override func rightViewRectForBounds(bounds: CGRect) -> CGRect {

            super.rightViewRectForBounds(bounds)

            

            let newBounds = CGRect(x: self.frame.size.width - self.frame.size.height, y: 0, self.frame.size.height, height: self.frame.size.height)

            return newBounds

        }

        

        required init?(coder aDecoder: NSCoder) {

            fatalError("init(coder:) has not been implemented")

        }

    }

  • 相关阅读:
    微信开放平台:OpenAPI、云开发与基础管理能力升级
    腾讯刘颖:从容器到低代码,腾讯云原生技术演进历程
    十年老站长心声:我为什么选择把 Hexo 网站迁移到 Webify
    腾讯云发布微搭生态开放计划,与合作伙伴携手共创产业未来
    SQL Server附加数据库出现错误5123的正确解决方法
    数据分页获取(二)
    Select语句
    数据分页获取(一)
    SQL Server中行转列原理
    QT实现Linux下系统监控小工具之二
  • 原文地址:https://www.cnblogs.com/madarax/p/5474565.html
Copyright © 2011-2022 走看看