2010-10-18 117 views
2

我有这个奇怪的错误与UITextField,有时有一行(实际上更多的透明带)通过它。有谁知道如何摆脱它?通过UITextField的线

这里的图片

alt text

链接到厦门国际银行文件:http://db.tt/7l2Bq42

的链接代码:http://db.tt/DW0mlqQ

编辑:该错误是现在解决了。我以编程方式创建此视图而不是使用xib文件,并且该错误似乎已消失。感谢大家的帮助

+0

您可以发布一些代码吗?它是否有附件视图或附件? – Genericrich 2010-10-18 18:34:11

+0

你确定该行不是来自另一个对象吗? (即错位的UIImageView对象等) – nacho4d 2010-10-18 18:36:56

+0

Definetly确定它不是来自另一个对象。 – tadejsv 2010-10-19 15:44:23

回答

1

看来你已经使用了UITextField的中心属性。如果你使用nameInput1.center,有时会出现这种类型的错误。

您可以使用此行代替设置中心属性。

nameInput1.textAlignment = UITextAlignmentCenter;

如果您仍然发现一些问题,请让我知道。我喜欢解决这个问题。

+0

对不起,但该错误仍然存​​在。我对代码进行了一些更改,现在我正在设置框架而不是中心。你也有这个bug吗? – tadejsv 2010-10-25 08:19:31

+0

你好,你为什么使用UITextField的中心属性?有什么需要吗?你能否给我提供完整的例子,以便我可以调试和解决问题。 – AppAspect 2010-10-25 10:57:53

+0

我正在使用它,因为我必须设置它的位置。我不能给你整个应用程序的代码,但我也可以给你.h文件(并且你可以制作一个应用程序)。有一些未知的类,只是删除它们。此问题仅出现在运行OS 3的设备上。 – tadejsv 2010-10-25 11:21:38

0

如果你摆脱居中,你的问题是否消失?

通过继承UITextField并重写drawTextInRect:方法,您可以完全避免使用textAlignment。要计算矩形,请使用下面的NSString方法:

- (CGSize)sizeWithFont:(UIFont *)font forWidth:(CGFloat)width lineBreakMode:(UILineBreakMode)lineBreakMode; 
+0

我没有使用textAlignment。现在只有“一半”的问题消失了,因为我没有设置中心属性 - 当两个文本字段都在屏幕上时,现在不会显示此行。看看代码,也许你可以解决它。 – tadejsv 2010-10-28 17:50:55