如何在没有子类UITableViewCell的情况下设置UITableViewCell的AccessoryView框架

时间:2012-04-10 14:35:01

标签: ios objective-c cocoa-touch uitableview

每当我尝试设置UITableViewCell's AccssoryView的框架时,它不会对附件视图的原始框架进行任何更改,但是,我想重新定位默认{{1}的附件视图没有任何子类?那可能吗?

我已经累了UITableViewCell为镜头制作镜子,但它没有用。 即使子类化CGAffineTransformations并在UITableViewCell中设置self.accessoryView.frame的框架也没有效果。

1 个答案:

答案 0 :(得分:0)

首先我尝试在cell.accessoryType = UITableViewCellAccessoryCheckmark;获得UITableView Cell子视图时得到:

<UITableViewCellContentView: 0x1463e500; frame = (0 0; 320 44); gestureRecognizers =      <NSArray: 0x1463e340>; layer = <CALayer: 0x1463e4d0>>,
<UIButton: 0x1463d920; frame = (0 0; 14 14); opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x1463ddd0>>

按钮似乎是UITableViewCell的accessoryView但是它的来源是(0,0),所以在那之后我试试

for (UIView *view in cell.subviews) {
    if ([view isKindOfClass:[UIButton class]]) {
        view.frame = CGRectMake(20, 0, 14, 14);
    }
}

我得到了

<UIButton: 0x1463d920; frame = (20 0; 14 14); opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x1463ddd0>>

但配件的位置没有改变.. 我认为这意味着UITableViewCell将accessoryView本身放在rightPosition中。你无法重新定位原始UITableViewCell的accessoryView。

这是我的研究,如果有人找到了办法,或者我错了,请告诉我。