A quick solution to format (border, color, padding) an UITextField is: UITextField+Format.h
#import <UIKit/UIKit.h>
@interface UITextField (Border_Color_Padding)
- (void)borderAndColor:(CGFloat)borderWidth paddingLeft:(BOOL)pad forLeft:(BOOL)left forTop:(BOOL)top forRight:(BOOL)right forBottom:(BOOL)bottom forColor:(UIColor *)color;
- (void)borderLeftAndColor:(CGFloat)borderWidth paddingLeft:(BOOL)pad forColor:(UIColor *)color;
- (void)borderTopAndColor:(CGFloat)borderWidth paddingLeft:(BOOL)pad forColor:(UIColor *)color;
- (void)borderRightAndColor:(CGFloat)borderWidth paddingLeft:(BOOL)pad forColor:(UIColor *)color;
- (void)borderBottomAndColor:(CGFloat)borderWidth paddingLeft:(BOOL)pad forColor:(UIColor *)color;
@end
UITextField+Format.m
#import "UITextField+Format.h"
@implementation UITextField (Border_Color_Padding)
- (void)borderAndColor:(CGFloat)borderWidth paddingLeft:(BOOL)pad forLeft:(BOOL)left forTop:(BOOL)top forRight:(BOOL)right forBottom:(BOOL)bottom forColor:(UIColor *)color {
CALayer *border;
if (top) {
border = [CALayer layer];
border.borderColor = color.CGColor;
border.borderWidth = borderWidth;
border.frame = CGRectMake(0, 0, self.frame.size.width, borderWidth);
[self.layer addSublayer:border];
}
if (bottom) {
border = [CALayer layer];
border.borderColor = color.CGColor;
border.borderWidth = borderWidth;
border.frame = CGRectMake(0, self.frame.size.height - borderWidth, self.frame.size.width, borderWidth);
[self.layer addSublayer:border];
}
if (left) {
border = [CALayer layer];
border.borderColor = color.CGColor;
border.borderWidth = borderWidth;
border.frame = CGRectMake(0, 0, borderWidth, self.frame.size.height);
[self.layer addSublayer:border];
}
if (right) {
border = [CALayer layer];
border.borderColor = color.CGColor;
border.borderWidth = borderWidth;
border.frame = CGRectMake(self.frame.size.width - borderWidth, 0, borderWidth, self.frame.size.height);
[self.layer addSublayer:border];
}
if (pad) {
UIView *paddingView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 7, 20)];
self.leftView = paddingView;
self.leftViewMode = UITextFieldViewModeAlways;
}
}
- (void)borderLeftAndColor:(CGFloat)borderWidth paddingLeft:(BOOL)pad forColor:(UIColor *)color {
[self borderAndColor:borderWidth paddingLeft:pad forLeft:YES forTop:NO forRight:NO forBottom:NO forColor:color];
}
- (void)borderTopAndColor:(CGFloat)borderWidth paddingLeft:(BOOL)pad forColor:(UIColor *)color {
[self borderAndColor:borderWidth paddingLeft:pad forLeft:NO forTop:YES forRight:NO forBottom:NO forColor:color];
}
- (void)borderRightAndColor:(CGFloat)borderWidth paddingLeft:(BOOL)pad forColor:(UIColor *)color {
[self borderAndColor:borderWidth paddingLeft:pad forLeft:NO forTop:NO forRight:YES forBottom:NO forColor:color];
}
- (void)borderBottomAndColor:(CGFloat)borderWidth paddingLeft:(BOOL)pad forColor:(UIColor *)color {
[self borderAndColor:borderWidth paddingLeft:pad forLeft:NO forTop:NO forRight:NO forBottom:YES forColor:color];
}
@end
Then when you want to format the UITextField: - red bottom border and padding
[textField borderBottomAndColor:1.0f paddingLeft:YES forColor:[UIColor redColor]];
- black top border
[textField borderTopAndColor:1.0f paddingLeft:NO forColor:[UIColor blackColor]];
- black left and bottom border and padding
[textField borderAndColor:1.0f paddingLeft:YES forLeft:YES forTop:NO forRight:NO forBottom:YES forColor:[UIColor blackColor]];