我是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
我不知道我在哪里犯错误。这段代码什么也没做。谁能告诉我哪里做错了? 任何帮助或任何建议。
答案 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