Wiem, że mogę trochę spóźnić się na imprezę, ale jestem pewien, że to pomoże przyszłym programistom zmierzyć się z tą samą sytuacją.
Możecie chce utworzyć kategorię, aby ułatwić korzystanie z różnych aplikacji tak:
UITextField + PaddingLabel.h
#import <UIKit/UIKit.h>
@interface UITextField (PaddingLabel)
-(void) setLeftPaddingText:(NSString*) paddingValue width:(CGFloat) width;
-(void) setRightPaddingText:(NSString*) paddingValue width:(CGFloat) width;
@end
UITextField + PaddingLabel.m
#import "UITextField+PaddingLabel.h"
@implementation UITextField (PaddingLabel)
-(void) setLeftPaddingText:(NSString*) paddingValue width:(CGFloat) width
{
UILabel *paddingLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, width, self.frame.size.height)];
paddingLabel.text = paddingValue;
self.leftView = paddingLabel;
self.leftViewMode = UITextFieldViewModeAlways;
}
-(void) setRightPaddingText:(NSString*) paddingValue width:(CGFloat) width
{
UILabel *paddingLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, width, self.frame.size.height)];
paddingLabel.text = paddingValue;
self.rightView = paddingLabel;
self.rightViewMode = UITextFieldViewModeAlways;
}
@end
Przykład użycia:
[self.dateTextField setLeftPaddingText:@"DATE:" width:defaultWidth];
Dlaczego jest brudny kod? – Johannes
@Johannes wiele zakodowanych wartości dla rects, kolorów, itp .... Ponadto, nie jestem pewien, czy zrobiłbym to na kontrolerze widoku, wydaje się logiki widoku, nie logika kontrolera do mnie. – pgb