SWTableView Cell Placement Bug

时间:2012-11-30 20:14:06

标签: ios cocos2d-iphone tableview

所以我用cocos2d编写了一些代码,我想用SWTableView来做,问题是它有一些非常奇怪的人口错误,它是如何垂直填充屏幕的。

我会尝试用前面的数字表示它。 4 =一个细胞可以的地方,4 * =一个细胞放在那里。

让我们说我的屏幕现在是

1
2
3
4

在我用3个项目填充后,它看起来像这样

1
2*
3*
4*

基本上我创建Table的方法是左下角的原点,而不是我希望它的左上角。我知道setVerticalFillOrder可以改变首先填充数据的顺序,但我尝试了Topdown和BottopUp,并且两者都有顶部空间。

以下是我创建表格的方式,如果有人有任何想法,我们将不胜感激

    CGSize winSize = [CCDirector sharedDirector].winSize;
    CGSize tableSize = CGSizeMake(table_width, table_height);

    if (_tableView) {
        [_tableView removeFromParentAndCleanup:YES];
        [_tableView release];
    }

    _tableView = [[SWTableView alloc] initWithViewSize:tableSize];
    [_tableView setDirection:SWScrollViewDirectionVertical];
    [_tableView setVerticalFillOrder:SWTableViewFillTopDown];

    [_tableView setDataSource:*my own class*];
    [_tableView setDelegate:*my own class*];

    [_tableView setPosition:CGPointMake(5, winSize.height/2-130)]; //winSize.height/2 - 160

    //refresh table
    [_tableView reloadData];

    [self addChild:_tableView];
    _tableView.isTouchEnabled = YES;

1 个答案:

答案 0 :(得分:0)

显然很多人似乎并没有使用SWTableView,但我知道这对我来说很头疼所以我会在这里为未来有这类问题的人提供一些东西。

我不知道为什么会修复它但是像这样创建SWTable

_tableView = [SWTableView viewWithDataSource:_friendListViewController size:tableSize];

这使得它以正确的顺序从上到下填充,同时注意我发现SWTable存在更多问题,如果锚点不在(0,0)表的实际可视大小缩小,请不要知道为什么。要解决此问题,请进入beforeDraw并按比例增加缩放

glScissor(self.position.x, self.position.y, viewSize_.width*3, viewSize_.height*3);

最后在视网膜显示屏中,位置和大小也会变得混乱,所以只需输入一个if语句来检测其视网膜是否显示,并根据它制作不同的位置和大小。

if ([[UIScreen mainScreen] respondsToSelector:@selector(displayLinkWithTarget:selector:)] &&
    ([UIScreen mainScreen].scale == 2.0)) {}