小编Jit*_*Dev的帖子

23
推荐指数
1
解决办法
9539
查看次数

UITextField - (void)drawPlaceholderInRect:(CGRect)rect在iOS 7中返回不同的CGRect高度

我试图子类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));

}
Run Code Online (Sandbox Code Playgroud)

因为我想要一个不同的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];
}
Run Code Online (Sandbox Code Playgroud)

我正在打印的矩形如下:

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)
Run Code Online (Sandbox Code Playgroud)

不知道这是一个错误还是我做错了什么?

iphone objective-c placeholder uitextfield ios

12
推荐指数
1
解决办法
4482
查看次数