Я попытался подклассом UITextField
нарисовать пользовательский placehoder. В iOS 6
это работает отлично, но в iOS 7
я получил другую высоту CGRect
.
Кадр UITextField
(0, 0, 500, 45)
. Я добавил левое заполнение 20 путем переопределения
- (CGRect)editingRectForBounds:(CGRect)bounds;
- (CGRect)placeholderRectForBounds:(CGRect)bounds;
- (CGRect)textRectForBounds:(CGRect)bounds;
Вызов метода ниже:
- (CGRect)makeRectFromBounds:(CGRect)bounds
withTopPadding:(CGFloat)topPadding
andLeftPadding:(CGFloat)leftPadding
{
return UIEdgeInsetsInsetRect(bounds, UIEdgeInsetsMake(topPadding, leftPadding, 0, 0));
}
Поскольку я хочу другое placeHolder цвет текста, я переопределяю
- (void)drawPlaceholderInRect:(CGRect)rect
- (void)drawPlaceholderInRect:(CGRect)rect {
[[UIColor colorWithRed:121.0/255.0
green:113.0/255.0
blue:107.0/255.0
alpha:1.0] setFill];
[self printRect:rect from:__FUNCTION__];
[[self placeholder] drawInRect:rect withFont:self.font];
}
Прямоугольник, который я печатаю, следующий:
iOS 7: -Rect (X: 0.0, Y:0.0, W:480.0, H:44.0)
iOS 6: -Rect (X: 0.0, Y:0.0, W:480.0, H:26.0)
Любая идея, если это ошибка, или я делаю что-то неправильно?