1. 程式人生 > >iOS實現TextField游標居中

iOS實現TextField游標居中

定義textField:
#import "MyTextField.h"

@implementation MyTextField

-(CGRect)placeholderRectForBounds:(CGRect)bounds
{
    CGRect inset = CGRectMake(bounds.origin.x+10, bounds.origin.y, bounds.size.width -20, bounds.size.height);//更好理解些
    return inset;
}


// 修改文字展示區域,一般跟editingRectForBounds一起重寫
- (CGRect)textRectForBounds:(CGRect)bounds
{
    CGRect inset 
= CGRectMake(bounds.origin.x+10, bounds.origin.y, bounds.size.width-25, bounds.size.height);//更好理解些 return inset; } // 重寫來編輯區域,可以改變游標起始位置,以及游標最右到什麼地方,placeHolder的位置也會改變 -(CGRect)editingRectForBounds:(CGRect)bounds { CGRect inset; if (self.text.length > 0) { // 這裡100可能需要自己調整一下使其居中即可 inset = CGRectMake(bounds.origin.x + 100
, bounds.origin.y, bounds.size.width - bounds.size.width / 2, bounds.size.height);//更好理解些 } // NSLog(@"%@",self.text); else { inset = CGRectMake(bounds.origin.x+bounds.size.width / 2, bounds.origin.y, bounds.size.width - bounds.size.width / 2, bounds.size.height);//更好理解些 }
return inset; } @end
username = [[MyTextField alloc] initWithFrame:CGRectMake(DEAppWidth * 0.04, 0, DEAppWidth * 0.84, 40)];
    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:12];
    username.placeholder = @"請輸入使用者名稱";
    username.autocorrectionType = UITextAutocorrectionTypeNo;
    username.autocapitalizationType = UITextAutocapitalizationTypeNone;
    username.clearButtonMode = UITextFieldViewModeWhileEditing;

實現效果如下:

注意: 這裡截圖游標不明顯,實際游標是在“入”和“用”字中間的。。。

這裡還是有些小bug。。。待完善。。。

小技巧:

可以用個假象去代替,就是直接文字居中,然後點選游標時候就把灰色底子用label去換,然後根據輸入刪除去判斷當前是否有文字輸入。

相關推薦

iOS實現TextField游標居中

定義textField:#import "MyTextField.h" @implementation MyTextField -(CGRect)placeholderRectForBounds:(CGRect)bounds { CGRect inset = CGR

iOSTextField 游標後移幾個畫素

UIView *paddingView1 = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 5, 30)]; self.textFieldKeHuDanWe

ios設定TextField游標顏色

今天遇到個奇怪的問題,textField不知何時消失了?其實是變成白色了,設定textField的背景色就可以看出來,至於為什麼會這樣還沒找到原因 只能設定游標顏色 1、[textField setValue:[UIColor redColor] forKeyPath:@"

iOS_實現TextField游標右移

由於密碼輸入框是第三方提供商提供的安全鍵盤,在使用的過程中,游標位置一直在輸入框的最左側邊框位置,與邊框緊挨著,與介面設計效果不相符。 為了實現相適應的頁面效果,就需要對密碼鍵盤的游標位置進行右移。

iOS 通過textfield的代理方法實現不進入編輯,實現別的操作

有時候需要展示一個搜尋框,但是並不是在當前頁面進行輸入,而是跳轉至下一個頁面。這時候不想要自定義一個控制元件,然後通過textfield實現。一開始想的太過複雜,想要在上面覆蓋一個按鈕來實現,不過太麻

iOS 實現QQ界面

mov end 點擊 gre blog state 數據 track prop 應師傅要求編寫個QQ界面來不吝賜教下我的代碼問題。 編寫個QQ界面。有三個組,每一個組有人。並顯示在線不在線。 先看一下效果圖 這裏省了事由於我的圖片僅僅用了一張。假設要依據人的不同設置,

ios App textField placeholder 信息上浮

ext label desc setup utl per loading idt atomic textField placeholder 提示信息上浮 當輸入框 有文的時候 placeholder 信息就浮動到左上角。 只要繼承就行,不用附加調用代碼, 使用非常簡單。

iOS 實現簡單的毛玻璃效果

rec 毛玻璃效果 實現簡單 ges 導航欄 view設置 with 技術 簡單 最近在整理導航欄的漸隱漸現效果,整理過程中偶然學會了圖片的毛玻璃效果實現,很簡單,不多說了,先上圖看看效果對比, 這是原圖, 這是加了效果後的,創建圖片的代碼就不上了,下面看下添加效果的代碼

ios實現下拉刷新,上拉加載

nor llb __weak count stat 實現 sele share mode 1、自定義cell //#import "EnjoyListModel.h" @protocol EnjoyCollectionCellOfViewDelegate <NSO

css實現垂直水平居中的方法(個數不限)?

實現 容易 css3 pre height blog pad 絕對定位 fresh 方法一:使用絕對定位 大家都知道margin:0 auto;能夠實現水平居中,但卻不知道margin:0 auto;也是可以實現垂直居中的; 給居中元素添加如下樣式:

css實現垂直水平居中

otto div bsp 不能 水平 margin 垂直居中 auto absolut 我們經常用margin:0 auto來實現水平居中,而一直認為margin:auto不能實現垂直居中……實際上,實現垂直居中僅需要聲明元素高度和下面的CSS: .Absolute-Ce

Android模仿iOS實現側滑返回(類似微信)

actionbar fin kth ins any lean blog 模仿 over 我們都知道側滑返回操作是 iOS 裏面比較常見的功能,一般是手指在靠近手機屏幕左邊緣向右滑動就可以關閉當前的界面,iOS 系統提供了這樣的 API,但是 Android 怎麽實現呢? 網

css實現垂直水平居中的5種方法

進行 posit tran cto ans otto data -c ive css實現垂直水平居中的5種方法 給父元素設置table-cell,text-align,vertical-align #big{ width: 200px;

H5C3--transform實現任何元素居中對齊

flow head height translate width post back ive pos 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <met

iOS實現微信外部H5支付完成後返回原APP(多APP也可實現)

更改 開發 技術分享 服務器端 嚴重 圖片 正常 接口 width 看到微信最近放開了微信H5支付,公司決定把H5集成到多款APP上。下面記錄下了開發過程。 由於是微信新推出的支付方式,在網上搜索到的相關資料並不多,其中有一篇文章(點此跳轉)對我的整個開發過程起到了很大幫助

iOS 實現單個頁面支持橫豎屏,其他頁面只能豎屏

eth duration amp pro 如果 oid span uiwindow obj 最近在自己的項目裏面 有需要做一個需求 : app中某一個頁面支持橫豎屏, 而其他頁面只能豎屏。 1 2 實現方法如下: 1 首先需要Xcode中選中支持的屏幕方向 2

用 CSS 實現元素垂直居中

rst 實用 for 行內元素 bottom 浮動 100% scale 使用 作者:知乎用戶鏈接:https://www.zhihu.com/question/20543196/answer/275464838來源:知乎著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業

css中實現水平垂直居中的幾種方式

css水平垂直居中水平居中(1)使用inline-block+text-align<div class="parent"><div class="child">demo</div></div> .child {

Android系統下用js自定義gesture事件(仿ios實現移動端事件一致)

initial path acc mtab uil 查看 sans fault default 一、手勢事件 下面二維碼是一個實例dome,可掃碼直接查看: 在ios系統中,系統自帶了gesture事件,兩個手指操作的時候,就會產生一下三種手勢

iOS實現圖形編程可以使用三種API(UIKIT、Core Graphics、OpenGL ES及GLKit)

圖像處理 運動 esper 之前 類方法 ati ima quartz 環境 這些api包含的繪制操作都在一個圖形環境中進行繪制。一個圖形環境包含繪制參數和所有的繪制需要的設備特定信息,包括屏幕圖形環境、offscreen 位圖環境和PDF圖形環境,用來在屏幕表面、一個位圖