//
// MyTextField.m
// DriverEpoch
//
// Created by 思 彭 on 2017/10/12.
// Copyright © 2017年 http://halohily.com. All rights reserved.
// #import "MyTextField.h" @implementation MyTextField -(CGRect)placeholderRectForBounds:(CGRect)bounds
{
CGRect inset = CGRectMake(bounds.origin.x+, bounds.origin.y, bounds.size.width -, bounds.size.height);//更好理解些
return inset;
} // 修改文本展示区域,一般跟editingRectForBounds一起重写
- (CGRect)textRectForBounds:(CGRect)bounds
{
CGRect inset = CGRectMake(bounds.origin.x+, bounds.origin.y, bounds.size.width-, bounds.size.height);//更好理解些
return inset;
} // 重写来编辑区域,可以改变光标起始位置,以及光标最右到什么地方,placeHolder的位置也会改变
-(CGRect)editingRectForBounds:(CGRect)bounds
{
CGRect inset;
if (self.text.length > ) {
// 这里100可能需要自己调整一下使其居中即可
inset = CGRectMake(bounds.origin.x + , bounds.origin.y, bounds.size.width - bounds.size.width / , bounds.size.height);//更好理解些
}
// NSLog(@"%@",self.text);
else { inset = CGRectMake(bounds.origin.x+bounds.size.width / , bounds.origin.y, bounds.size.width - bounds.size.width / , bounds.size.height);//更好理解些
}
return inset;
} @end

定义textField:

 username = [[MyTextField alloc] initWithFrame:CGRectMake(DEAppWidth * 0.04, , DEAppWidth * 0.84, )];
username.backgroundColor = [UIColor lightGrayColor];
username.delegate = self;
username.textAlignment = NSTextAlignmentCenter;
// username.backgroundColor = [UIColor lightGrayColor];
username.textColor = [UIColor blackColor];
username.font = [UIFont fontWithName:@"Times New Roman" size:];
username.placeholder = @"请输入用户名";
username.autocorrectionType = UITextAutocorrectionTypeNo;
username.autocapitalizationType = UITextAutocapitalizationTypeNone;
username.clearButtonMode = UITextFieldViewModeWhileEditing;

实现效果如下:

注意: 这里截图光标不明显,实际光标是在“入”和“用”字中间的。。。

这里还是有些小bug。。。待完善。。。

小技巧:

可以用个假象去代替,就是直接文字居中,然后点击光标时候就把灰色底子用label去换,然后根据输入删除去判断当前是否有文字输入。

iOS实现TextField光标居中的更多相关文章

  1. iOS 限制TextField输入长度(标准)

    iOS 限制TextField输入长度(标准) 网上有很多限制textField输入长度方法,但是我觉得都不是很完美,准确来说可以说是不符合实际开发的要求,因此在这里整理一下textField限制输入 ...

  2. 【小知识点】input输入框在安卓以及IOS手机中光标及字体不居中解决方法

    问题根本:不要使用line-height垂直居中. 解决方法:可直接定义height,然后高度由上下padding值撑开. input { height: 1rem; padding: 1rem 0; ...

  3. iOS 限制textField输入的长度

    1.电话号码(带3-3-4效果) //指定代理 self.phoneTextField.delegate = self; //当编辑改变的时候,进行字符校验 [self.phoneTextField ...

  4. iOS对textField进行字符长度限制的办法

    在项目开发过程中,遇到这么一个需求,编辑标签时,输入的最大长度需要限制为24个字节. 查阅了一些材料,并参考了之前项目的相关处理办法,今天在这里总结一下解决方案. 1.写一个截取字符串的方法,将超长的 ...

  5. 解决只读时ios下input光标问题

    应用场景:在ios手机下对只读的input设置readonly=readonly属性还是会出现光标 解决方法: //解决ios日期光标问题 $("#Stime ,#provinceCity& ...

  6. IOS中input光标跑偏问题的解决方法

    ios端兼容input光标高度处理 在最近的项目中遇到一个问题,input输入框光标,在安卓手机上显示没有问题,但是在苹果手机上 当点击输入的时候,光标的高度和父盒子的高度一样.造成的原因就是给父盒子 ...

  7. IOS textView获取光标定位,以及选中

    当textview成为第一响应者的时候就会调用一个协议方法 - (void)textViewDidChangeSelection:(UITextView *)textView; 在这个协议方法中可以实 ...

  8. IOS开发 - TextField 控件详细

    //初始化textfield并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, ...

  9. ios修改textField的placeholder的字体颜色和大小

    textField.placeholder = @"username is in here!"; [textField setValue:[UIColor redColor] fo ...

随机推荐

  1. 浅谈angularJs

    在家都知道,angular 可以实现双项数据绑定,其中它的占位符是{{}},他是是MVC数据分离, 首先要在<html>或<body>中建一个<body ng-app=& ...

  2. Codeforces 729D Sea Battle(简单思维题)

    http://codeforces.com/contest/738/problem/D https://www.cnblogs.com/flipped/p/6086615.html   原 题意:海战 ...

  3. [原创]VSCode debug jest的配置

    重拾JS的路从修改JS源码开始,修改JS源码从源码自带的test code开始.源码的test code使用了jtest框架,从test code刚好可以看到要修改部分的 多种传值方式,以及函数输出结 ...

  4. 5、Spring Boot 2.x 启动原理解析

    1.5 Spring Boot 启动原理解析 前言 前面几章我们见识了SpringBoot为我们做的自动配置,确实方便快捷,但是对于新手来说,如果不大懂SpringBoot内部启动原理,以后难免会吃亏 ...

  5. 组件化网页开发 / 步骤二 · 2-11 jquery的ajax方法 以及下一章跨域没懂

    1,根据2-11课程老师的提示,自己封装 $.ajax 2,第三章,跨域,没看懂

  6. The 10th Shandong Provincial Collegiate Programming Contest

    目录 Contest Info Solutions A. Calandar B. Flipping Game C. Wandering Robot D. Game on a Graph E. BaoB ...

  7. Cash Machine (POJ 1276)(多重背包——二进制优化)

    链接:POJ - 1276 题意:给你一个最大金额m,现在有n种类型的纸票,这些纸票的个数各不相同,问能够用这些纸票再不超过m的前提下凑成最大的金额是多少? 题解:写了01背包直接暴力,结果T了,时间 ...

  8. 串结构练习——字符串连接(SDUT 2124)

    Problem Description 给定两个字符串string1和string2,将字符串string2连接在string1的后面,并将连接后的字符串输出. 连接后字符串长度不超过110. Inp ...

  9. python的openpyxl的使用笔记

    openpyxl模块介绍 openpyxl模块是一个读写Excel 2010文档的Python库,如果要处理更早格式的Excel文档,需要用到额外的库,openpyxl是一个比较综合的工具,能够同时读 ...

  10. Process 'xx' Is Running

    最近在试着使用idea,工具快捷键和设置都不太熟,今天遇到进程占用问题,感觉有必要总结一下,避免下次遇到同样问题. 常用快捷键: ctrl+n 搜索 ctrl+Shift+n 全部搜索 Ctrl+Al ...