如何访问QuickDialog单元格元素的UITableViewCell?

时间:2012-07-26 17:03:28

标签: ios quickdialog

我正在尝试访问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为空。

提前谢谢

1 个答案:

答案 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了。