2015-08-03 1 views
0

Мне нужна граница для моего текстового поля, например, следующего изображения. Как я могу это сделать?Как установить границу UITextField/CALayer границы ios только с трех сторон

enter image description here

+0

http://stackoverflow.com/questions/17355280/how-to-add-a-border-just-on-the-top-side-of-a-uiview –

+0

использовать изображение как фон и не устанавливать border to uitextfield ... –

ответ

1

попробовать эти .. я надеюсь, что это помогает ...

UITextField *txt=[[UITextField alloc]initWithFrame:CGRectMake(10, 100, 150, 30)]; 
[txt setBackgroundColor:[UIColor clearColor]]; 
[txt setPlaceholder:@"Hello my friend"]; 
[self.view addSubview:txt]; 


CALayer *border = [CALayer layer]; 
CGFloat borderWidth = 2; 
border.borderColor = [UIColor redColor].CGColor; 
border.frame = CGRectMake(0, -2, txt.frame.size.width, txt.frame.size.height); 
border.borderWidth = borderWidth; 
[txt.layer addSublayer:border]; 
txt.layer.masksToBounds = YES; 
+0

Я получил вашу логику, она должна работать. Но ее нет. Не знаю, почему – abhi1992

0

Я нашел ответ самостоятельно.

просто передать имя TextField к следующей функции

-(void)setBorderView:(UITextField*)textField 
{ 
    UIView *borderView = [[UIView alloc]init]; 
    borderView.backgroundColor = [UIColor clearColor]; 
    CGRect frameRectEmail=textField.frame; 


    NSLogVariable(textField); 
    borderView.layer.borderWidth=1; 
    borderView.layer.borderColor=[customColor colorWithHexString:@"8c8b90"].CGColor; 
    borderView.layer.cornerRadius=5; 
    borderView.layer.masksToBounds=YES; 



    UIView *topBorder = [[UIView alloc]init]; 
    topBorder.backgroundColor = [customColor colorWithHexString:@"1e1a36"]; 
    CGRect frameRect=textField.frame; 
    frameRect.size.height=CGRectGetHeight(textField.frame)/1.5; 
    topBorder.frame = frameRect; 
     frameRectEmail.size.width=frameRect.size.width; 
    [borderView setFrame:frameRectEmail]; 

    [_textFieldBackGroundView addSubview:borderView]; 
    [_textFieldBackGroundView addSubview:topBorder]; 
    [_textFieldBackGroundView addSubview:textField]; 

} 

я создаю вид ниже текстовое поле и устанавливающего границу этой view.Now я создаю еще один вид с тем же цветом baground и маскирование верхняя часть od borderView.Это не практично во всех ситуациях. Но для меня это отлично работает. Спасибо.