我正在尝试访问QuickDialog表单的UITableViewCell的属性。
更具体地说,我正在尝试访问QEntryElement(QDateTimeInlineElement)的accessoryView属性,该属性在我创建的对象的属性列表中“隐藏”。
我正在尝试使用
访问单元格 UITableViewCell *thisCell = [dateelement getCellForTableView:self.quickDialogTableView controller:self];
但由于某些原因,没有显示任何内容。我想在其中插入一个UIButton,如下所示:
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setTitle:@"=" forState:UIControlStateNormal];
button.frame = CGRectMake(0, 0, 24, 24);
然后 thisCell.accessoryView = button;
我是以错误的方式访问该物业,还是根本没有创建按钮?没有显示错误,但accessoryView为空。
提前谢谢
答案 0 :(得分:2)
This issue看起来非常接近你的要求。基本上,您首先必须提供自己的QuickDialogStyleProvider
,按照escoz建议的方式实施cell:willAppearForElement:atIndexPath:
方法:
在提供者方法中接听电话后,您可以完全控制该小区。您可以检查单元格是否为
QEntryTableViewCell
类型,如果是,则转换为该类型并更改textField
属性的颜色/字体。一个很好的副作用是,这也将改变所有子类的颜色,如单选按钮,日期/时间字段等。
所以,在你的情况下,你会做类似
的事情- (void)viewDidLoad
{
self.quickDialogTableView.styleProvider = self;
}
- (void)cell:(UITableViewCell *)cell willAppearForElement:(QElement *)element atIndexPath:(NSIndexPath *)indexPath
{
if([cell isKindOfClass:[QDateTimeInlineElement class]])
{
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setTitle:@"=" forState:UIControlStateNormal];
button.frame = CGRectMake(0, 0, 24, 24);
cell.accessoryView = button;
}
}
很抱歉,如果它不完全正确,我现在就离开Xcode了。