Я пишу UITextField с кодом в файле с именем login.mКак правильно подклассифицировать класс в ObjectiveC?
_textfield1 = [[UITextField alloc] initWithFrame:CGRectMake(50, 60, self.view.frame.size.width-50*2, 44)];
_textfield1.placeholder = @"email";
_textfield1.font = [UIFont systemFontOfSize:14.0f];
_textfield1.delegate = self;
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:_textfield1.bounds byRoundingCorners:UIRectCornerTopLeft|UIRectCornerTopRight cornerRadii:CGSizeMake(4, 4)];
CAShapeLayer *maskLayer = [CAShapeLayer layer];
maskLayer.frame = _textfield1.bounds;
maskLayer.path = maskPath.CGPath;
_textfield1.layer.mask = maskLayer;
[self.view addSubview:_textfield1];
и я подкласс UITextField с именем 'NewTextField', NewTextField.h
#import <UIKit/UIKit.h>
@interface NewTextField : UITextField
@end
NewTextField.m
#import "NewTextField.h"
@implementation NewTextField
- (void)setMaskView:(UIView *)maskView {
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:maskView.bounds byRoundingCorners:UIRectCornerBottomLeft|UIRectCornerBottomRight cornerRadii:CGSizeMake(4, 4)];
CAShapeLayer *maskLayer = [CAShapeLayer layer];
maskLayer.frame = maskView.bounds;
maskLayer.path = maskPath.CGPath;
maskView.layer.mask = maskLayer;
}
@end
в файле login.m, i обновить код
_textfield1 = [[NewTextField alloc] initWithFrame:CGRectMake(50, 60, self.view.frame.size.width-50*2, 44)];
_textfield1.placeholder = @"email";
_textfield1.font = [UIFont systemFontOfSize:14.0f];
_textfield1.delegate = self;
[_textfield1 setMaskView:_textfield1];
[self.view addSubview:_textfield1];
это работает, но я не думаю, что это правильный путь. так как я могу правильно подклассифицировать класс?
Почему, по вашему мнению, это неправильно? Какие проблемы вы наблюдаете? – Avi
Не должно быть '_textfield1 = [[NewTextField alloc] ....' после того, как вы обновили свой код? – Tj3n
@Avi здесь так bizarrerie в строке [_textfield1 setMaskView: _textfield1]; – yeleko