0

如何将单元格的详细信息从默认位置移动到另一个位置?在objective-c中不经意间。

4

2 回答 2

0

通过覆盖 UITableViewCell 创建一个自定义单元格,您还没有这样做,并将下面的方法发布到您的实现文件中。

-(void)layoutSubviews
{
    [super layoutSubviews];

    for (UIView *subview in self.subviews) {

        if ([NSStringFromClass([subview class]) isEqualToString:@"UIButton"]) { 

            //Just an example, change the frame by your wish here.
            CGRect newFrame = subview.frame;
            newFrame.origin.y -= 15;
            subview.frame = newFrame;
        }

    }

}

这种方法可用于编辑 TableViewCell 的任何默认组件,例如显示、编辑时的删除按钮等。并且不会弄乱您放在单元格中的视图,因为您手动添加的所有视图实际上都在contentView属性内.

像魅力一样工作,但请记住,更改在视图之外无法访问的子视图的状态绝不是一个好习惯(尽管它不会导致您的应用程序被拒绝)。

一个更优雅的解决方案是简单地将 UIImageView 与您的自定义披露一起使用,并将其放在您的单元格中您想要的位置。


编辑:

在下面的评论和反对票之后,我认为指出一些事情很重要:

您放入单元格中的所有视图实际上都在 UITableViewCell 属性“contentView”中。因此,即使您的单元格中有按钮,它们也不会在上面的 for enumeratino 中列出,因为它们实际上是 contentView 的子视图,因此代码仍然可以工作。

请对 UITableViewCellContentView 进行一些研究以获取更多详细信息。

我的观点是表明是的,如果这确实是您正在寻找的内容,则可以移动默认披露,但我确实告诉过这不是更好的解决方案。

于 2013-08-01T02:11:55.380 回答
0

没有干净且经过批准的移动附件视图的方法,其中包含详细信息披露指示器。有一些移动它的“hacky”方式,我强烈建议不要这样做。

这是一个人的黑客的答案。

于 2013-08-01T02:55:43.700 回答