給UITextField左側加一個小圖標


xcode 6.1

File-New-Project..

iOs-Application-Simple View Application

1、寫一個自定義JSTextField類,繼承UITextField,來重載原有的initWithFrame方法,以便以后可以重用。

1.1右鍵,彈的菜單New File...

1.2 iOS-Source-Cocoa Touch Class

1.3 在Class:中輸入JSTextField(名字自取),讓其繼承UITextField:

1.4 Next =>Create 創建文件JSTextField.h JSTextField.m

1.5 點擊JSTextField.h,輸入方法:

代碼:

-(id)initWithFrame:(CGRect)frame drawingLeft:(UIImageView*)icon;

1.6 打開JSTextField.m,實現initWithFrame方法,並且overwrite方法leftViewRectForBounds:,讓圖標右側可以有點間距:

代碼:

#import "JSTextField.h"

@implementation JSTextField

-(id)initWithFrame:(CGRect)frame drawingLeft:(UIImageView *)icon{
    self = [super initWithFrame:frame];
    if (self) {
        self.leftView = icon;
        self.leftViewMode = UITextFieldViewModeAlways;
    }
    return self;
}

-(CGRect)leftViewRectForBounds:(CGRect)bounds{
    CGRect iconRect = [super leftViewRectForBounds:bounds];
    iconRect.origin.x += 10;// 右偏10
    return iconRect;
}

@end

2、使用剛才的JSTextField:

代碼:

    UIImage *usernameImage = [UIImage imageNamed:@"20.gif"];
    UIImageView *usernameIcon = [[UIImageView alloc] initWithImage:usernameImage];
    usernameIcon.frame = CGRectMake(0, 0, 20, 20);
    
    self.textview = [[JSTextField alloc] initWithFrame:CGRectMake(0, 200, 240, 30) drawingLeft:usernameIcon];
    self.textview.placeholder = @"用戶名";
    self.textview.borderStyle = UITextBorderStyleRoundedRect;
    self.textview.clearButtonMode = UITextFieldViewModeWhileEditing;
    //[self.textview setKeyboardType:UIKeyboardTypeNumbersAndPunctuation];
    [self.view addSubview:self.textview];

textview的聲明,在ViewController.h中:

代碼:

@property (strong, nonatomic) IBOutlet JSTextField *textview;

效果如下:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM