这是我的代码,在我的应用中,我为UITableView中的每个单元格使用了自定义UITableViewCell,并在“ heightForRowAtIndexPath”中计算了单元格的高度,但是如果我使用“ dequeueReusableCellWithIdentifier”,则在滚动表格视图时该单元格会重叠。 当不使用“ dequeueReusableCellWithIdentifier”时问题就消失了。 不知道为什么会发生这个问题?

实际上,我想知道是否不使用“ dequeueReusableCellWithIdentifier”创建单元格,如果tableview显示很多单元格,是否会引起任何内存问题?

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
#warning Incomplete method implementation.
    // Return the number of rows in the section.

    return 10;

}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{


    static NSString* cellIdentifier = @"threadCell";
    SYGBBSTableViewCell * cell=nil;

    //if I comment below line code , the cell overlap issue solved 
    cell = (SYGBBSTableViewCell*) [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

    if (cell == nil) {
        cell = [[SYGBBSTableViewCell alloc] initMessagingCellWithReuseIdentifier:cellIdentifier];
    }

    [self configureCell:cell atIndexPath:indexPath];





    return cell;
}



-(void)configureCell:(SYGBBSTableViewCell*)cell atIndexPath:(NSIndexPath *)indexPath {

    SYGBBSTableViewCell* ccell = (SYGBBSTableViewCell*)cell;

    ...
    cell.content.text=content;

}








- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath;
{
    /// Here you can set also height according to your section and row
    NSDictionary* thread = [MyGoController getBBSThreadAtIndex:indexPath.row];

    int height = [SYGBBSTableViewCell cellHeightForThreadAt:thread];
    return height;
}

===============>>#1 票数:0

问题是,当您使用dequeueReusableCellWithIdentifier获取单元时,它将不会调用初始化程序initMessagingCellWithReuseIdentifier initMessagingCellWithReuseIdentifier重命名为initWithStyle:reuseIdentifier: initMessagingCellWithReuseIdentifier它应该可以工作。

请注意, initWithStyle:reuseIdentifier:是指定的初始化程序(文档: https : //developer.apple.com/library/ios/documentation/uikit/reference/UITableViewCell_Class/Reference/Reference.html ),您应该调用[super initWithStyle:style reuseIdentifier:reuseIdentifier]; 之后,在initMessagingCellWithReuseIdentifier实现您现在要实现的逻辑。

===============>>#2 票数:0

dequeueReusableCellWithIdentifier对于单元重用很有用,除非使用- (id)dequeueReusableCellWithIdentifier:(NSString *)identifier forIndexPath:(NSIndexPath *)indexPath以获得可重用单元格,否则应检查cell == nil 我认为问题在于configureCell ,因为单元格的高度会发生变化,因此您也应该将单元格配置为适当的高度,您可以在configureCell方法中尝试如下代码:

-(void)configureCell:(SYGBBSTableViewCell*)cell atIndexPath:(NSIndexPath *)indexPath {

    SYGBBSTableViewCell* cell = (SYGBBSTableViewCell*)cell;
    CGFloat cellHeight = [self tableView:self.tableView heightForRowAtIndexPath:indexPath];

    [cell layoutSubviewWithHeight:cellHeight];
    [cell configureContent];
}

  ask by sureone translate from so

未解决问题?本站智能推荐:

3回复

UItableview单元格UItableview单元格内具有UItableview的动态高度

我要求将供稿和图像列表放置在tableview中,并且每个供稿注释也应与供稿一起显示。 为此,我在UItableview单元格内使用了内部uitableview。 并且注释表视图高度应该是动态的。如何根据注释表视图(内部表视图)的高度来更新Feed表格视图高度。 我附带的这个示例
1回复

使用dequeueReusableCellWithIdentifier时分配UItableView单元格标签

我在情节UISegmentedControl定义了三个原型单元,每个单元中都包含一个UISegmentedControl小部件。 我有两种向用户展示的条件: 一个为[ON|OFF] ,另一个为[1|2|3|4] 。 我需要以编程方式设置每个窗口小部件的文本,因此我在情节提要中设置窗口小部件
12回复

基于内容的动态UITableView单元格高度

我有一个UITableView ,其中填充了自定义单元格(继承自UITableViewCell ),每个单元格都包含一个UIWebView ,它根据它的内容自动调整大小。 这就是问题,如何根据内容(变量webView )更改UITableView单元格的高度。 解决方案必须是动态的,因为
1回复

dequeueReusableCellWithIdentifier和自定义单元格

好的,我有一张包含3个不同原型单元格的表格(cellVaccination,cellAdmin,cellExpire)。 在我的cellForRowAtIndexPath方法中,我将Core Data对象划分为这3个单独的单元格,因此该表在结构上将如下所示: 此外,我已通过编程方式将U
1回复

dequeueReusableCellWithIdentifier:记住单元格的状态

我已将水平表格视图嵌入表格单元内(例如Pulse Reader)。 我得到的有趣的行为是dequeueReusableCellWithIdentifier:似乎在正确地记住嵌入式表视图的偏移量,而无需执行任何操作。 但是“记住”有两种味道 第一(预期) 我创建一个表,其中包含10
2回复

UITableView具有:具有动态内容的静态单元格和动态单元格

我有一个UITableView,它总是有4个部分。 第一部分始终具有1行,第二部分始终具有3行。 然后,第三和第四部分可以具有任意数量的行。 尽管前两个部分本质上是静态单元格,但是其中的内容会发生变化。 前两个部分都是我必须要做的,因此我只使用了静态单元格,并直接在TableView
1回复

UITableView有些单元格重叠

我有一个不同行高的桌面视图。 单元格的高度基于每个单元格中的文本量。 标签在IB中创建,具有尾随,前导和顶部约束,以便它可以向下扩展。 当我测试我的应用程序时,第一个单元格是好的,但是一旦我向下滚动,一切都开始搞砸了。 细胞高度关闭,看起来细胞重叠。
2回复

UITableView重叠单元格(强制)

我想完成表格视图单元格的重叠,因为我想实现以下效果: 因此,基本上,单元会相互堆叠。 我的目标是iOS7 +(目前正在测试iOS8)。 我目前正在做一个CAGradientLayer ,它被放置在layoutSubviews 。 我将其定位在: 我也做了 在
1回复

与UITableView重叠的静态单元格

我有一个带有静态单元格的UITableViewController。 当一个单元格有多个行时,它们相互重叠。 自动版式不能解决问题。 这是情节提要和模拟器的屏幕截图。 我没有为UITableViewController创建的类的任何代码,因此这不应该成为问题。 编辑:如果我用空单元
4回复

UITableView单元格重叠

我正在尝试实现的ConnectionViewController遇到问题。 它仅列出了行中的BLE设备,单元重叠,并且有两个标头。 我相信这是由于我在tableViewController中添加子视图时在configuringTableView设置表的方式造成的。 Connection