schreibe ich eine UITextField mit dem Code in der Datei login.m genanntWie Unterklasse eine Klasse in ObjectiveC korrekt?
_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];
und i Unterklasse UITextField mit dem Namen '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
in Datei login.m, ich aktualisiere Code
_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];
es funktioniert, aber ich denke nicht, dass es ein richtiger Weg ist. Wie kann ich eine Klasse in der richtigen Weise ableiten?
Warum denken Sie, dass es falsch ist? Welche Probleme beobachtest du? – Avi
Sollte es nicht '_textfield1 = [[NewTextField alloc] ....' nachdem Sie Ihren Code aktualisiert haben? – Tj3n
@Avi hier ist so bizarrerie in der Zeile [_textfield1 setMaskView: _textfield1]; – yeleko