在UITextField中使用自定义字体会导致它在访问时稍微移位 - 是否有修复?

Red*_*ess 24 interface-builder embedded-fonts uitextfield xcode4

我有一个的UITextField自定义字体,我已经注意到,当它访问(当键盘出现),文本由向下移动非常少量的-也许一个像素或两个或三个.(当然,我无法衡量它,但这足以让我注意到.)然后当键盘被解除时,它会再次向上移动.

我已经尝试在编辑时清除字段(这隐藏了初始向下移动的问题),但它还没有解决问题.我也查看了IB中的各种属性,并尝试改变一些,但问题仍然存在.我在模拟器和iPad2上得到了相同的结果.

(该字段与键盘完全不同,因此不是整个视图都移开 - 它只是该特定文本字段的内容.)

我确定这是导致问题的自定义字体 - 没有它就不会发生.

知道如何解决这个问题吗?我以为我可能需要以编程方式创建文本字段,而不是在IB中 - 我知道我可能应该在尝试此问题之前尝试一下,但是如果不这样做我就不愿意去解决所有问题解决这个问题.

任何建议赞赏!

McD*_*cDJ 16

我也有这个问题.

修复,子类化UITextField并实现以下方法,以在不编辑和编辑时调整文本的位置.

- (CGRect)textRectForBounds:(CGRect)bounds {

    return CGRectInset( bounds , 8 , 8 );
}

- (CGRect)editingRectForBounds:(CGRect)bounds {

    return CGRectInset( bounds , 8 , 5 );
}
Run Code Online (Sandbox Code Playgroud)


Mob*_*ord 0

我在使用自定义字体时遇到了这个问题,并通过在键盘事件触发时将标签向另一个方向移动来解决它。drawRect:我通过重写方法移动了按钮中标签的中心

- (void)drawRect:(CGRect)rect
{
    self.titleLabel.center = CGPointMake(self.titleLabel.center.x, self.titleLabel.center.y+3);
}
Run Code Online (Sandbox Code Playgroud)