大图:这就是我想要完成的。发短信给某人。 UI / UX看起来应该类似于:
所以,目前,我正在使用带有3个单元格的UITableView。前两个(“To:”和“From:”)高44px。我将UITextField放在UITableViewCell的“contentView”中。一切都是好的。我可以让用户编辑单元格的内容。
现在,我使用leftView属性显示带有文本“To:”的UILabel。它工作但“To”标签总是在UITextField的最左边(如下面的img所示):
因此,根据SDK文档。左视图模式由此方法决定: leftViewRectForBounds:
根据讨论:
您不应该调用此方法 直。如果你想放置 左侧覆盖视图不同 位置,您可以覆盖此方法 并返回新的矩形。
所以,我试过压倒但没有取得多大成功。如果有人有任何代码片段,我将不胜感激。在下图中,我将“From”设置为“From”,这是“黑客”一点点,但我想正确地做到这一点。这就是我的尝试:
// override leftViewRectForBounds method:
- (CGRect)leftViewRectForBounds:(CGRect)bounds{
CGRect leftBounds = CGRectMake(bounds.origin.x + 30, 0, 45, 44);
return leftBounds;
}
和它的小变种,它似乎不起作用所以任何帮助表示赞赏。感谢!!!
答案 0 :(得分:4)
你可以让你的课程如下
@interface MyTextField : UITextField
{
//Declare your variable here
}
@end
@implementation MyTextFiled
// override leftViewRectForBounds method:
- (CGRect)leftViewRectForBounds:(CGRect)bounds{
CGRect leftBounds = CGRectMake(bounds.origin.x + 30, 0, 45, 44);
return leftBounds;
}
使用MyTextField而不是UITextField。
答案 1 :(得分:0)
如果您没有将textField作为customtextfield,则不会调用该方法。要覆盖此方法,您必须使用继承UITextField的自定义textField类。