如何在多个文本字段中创建底线边框

时间:2015-08-31 07:50:10

标签: ios objective-c uitextfield

我是Objective C的初学者。 我想创建只有底线边框的多个文本字段。 为此我克里特新课<div class="ball"></div> 看看我的代码; -

customTextField

CustomTextField.m

- (id)init { CALayer *border = [CALayer layer]; CGFloat borderWidth = 2; border.borderColor = [UIColor grayColor].CGColor; border.frame = CGRectMake(0, self.frame.size.height - borderWidth, self.frame.size.width, self.frame.size.height); border.borderWidth = borderWidth; [self.layer addSublayer:border]; self.layer.masksToBounds = YES; return self; }

loginViewController.h

#import <UIKit/UIKit.h> #import "CustomTextField.h" @interface LoginViewController : UIViewController @property (strong, nonatomic) IBOutlet CustomTextField *txtFirstName; @property (strong, nonatomic) IBOutlet CustomTextField *txtLastName; @property (strong, nonatomic) IBOutlet CustomTextField *txtEmail; @property (strong, nonatomic) IBOutlet CustomTextField *txtPassword; @end

loginViewController.m

我不知道我在哪里犯错误。这段代码什么也没做。谁能告诉我哪里做错了? 任何帮助或任何建议。

3 个答案:

答案 0 :(得分:0)

试试这个:

self.layer.masksToBounds = YES;
self.layer.borderColor = [UIColor grayColor].CGColor;
self.layer.borderWidth = borderWidth;

但您正在使用IBOulet,这意味着您的对象是从故事板初始化的,因此您应该将代码移至awakeFromNib

- (void)awakeFromNib
{
    self.layer.masksToBounds = YES;
    self.layer.borderColor = [UIColor grayColor].CGColor;
    self.layer.borderWidth = borderWidth;
}

答案 1 :(得分:0)

在.m文件中添加私有边框图层属性

@property (strong, nonatomic) IBOutlet CALayer *borderLayer;

覆盖layoutSubviews以设置边框。

- (void)layoutSubViews {
    [super layoutSubViews];
    if (self.borderLayer) {
        self.borderLayer = [CALayer layer];
        [self.layer addSublayer:border];
    }
    CGFloat borderWidth = 5.0f;
    self.borderLayer.backgroundColor = color.CGColor;
    self.borderLayer.frame = CGRectMake(0, self.frame.size.height - borderWidth, self.frame.size.width, borderWidth);
}

<强>更新: 不要在viewDidLoad中初始化CustomTextField IBOutlets。只需在故事板中将他们的班级设置为CustomTextField

答案 2 :(得分:0)

如果您以编程方式创建所有按钮,那么您正在使用子板与故事板,您的代码会很好但如果您希望代码在故事板上以编程方式正常工作,那么您必须在<input type="file" id="fileinput" name="files"/> function testxls() { var f = fileinput.files[0]; var reader = new FileReader(); reader.readAsBinaryString(f); reader.onload = function (e) { var data = e.target.result; var res = alasql('SELECT * FROM XLS(' + e + ')'); console.log(JSON.stringify(res)); }; } 中使用此代码

CustomTextField.m