iOS:由于在CellForRowatineXpath运行时设置了约束,TableView无法平滑滚动

iOS:由于在CellForRowatineXpath运行时设置了约束,TableView无法平滑滚动,ios,objective-c,uitableview,ios-autolayout,viewdidlayoutsubviews,Ios,Objective C,Uitableview,Ios Autolayout,Viewdidlayoutsubviews,我正在使用故事板和自动布局,我在运行时为自定义单元格设置了约束。我还在ViewDidLayoutSubviews中设置了约束以处理设备方向。因此,Cell的配置需要时间,而我的Cell滚动不顺畅。有人能帮我吗?如果我在运行时不能设置约束,那么我应该在哪里设置约束?希望我很清楚。提前感谢我与nburk合作,用这个简短的细节是不可能解决的。但当您在tableView中使用自定义单元格时。在cellForRowAtIndexPath方法中,每次创建单元格时都可以使用 dispatch_async(di

我正在使用故事板和自动布局,我在运行时为自定义单元格设置了约束。我还在ViewDidLayoutSubviews中设置了约束以处理设备方向。因此,Cell的配置需要时间,而我的Cell滚动不顺畅。有人能帮我吗?如果我在运行时不能设置约束,那么我应该在哪里设置约束?希望我很清楚。提前感谢我与nburk合作,用这个简短的细节是不可能解决的。但当您在tableView中使用自定义单元格时。在cellForRowAtIndexPath方法中,每次创建单元格时都可以使用 dispatch_async(dispatch_get_main_queue(),^{……您的自定义单元格代码在这里……})//用于更新用户界面
我不确定,但当您的行显示屏幕UI时,它没有及时更新。

我建议您定义UITableViewCell的子类,并在
init
/
initWithCoder:
方法中创建所有约束

别忘了正确地重复使用你的细胞。这样,您就不会一直重新创建单元格的约束

编辑:查看下面的示例

static NSString* const kCellIdentifier = @"CustomTableViewCellIdentifier";

@implementation CustomTableViewController

- (void)viewDidLoad
{
    [self.tableView registerClass:[CustomTableViewCell class] forCellReuseIdentifier:kCellIdentifier];
}

- (UITableViewCell*) tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath
{
    CustomTableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:kCellIdentifier];
    // configure your cell here
    return cell;
}

@end


@interface CustomTableViewCell: UITableViewCell
@end

@implementation CustomTableViewCell

- (instancetype) initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString*)reuseIdentifier
{
    if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])
    {
        // add subviews and install constraints here. Don't forget to use contentView instead of cell when you install constraints.
    }

    return self;
}

@end

由于信息有限,无法确定应用程序中的潜在问题。。。您必须提供更多的上下文,否则将很难帮助发布有关设置约束和CellForRowatineXpath的代码一些示例和解释会很好。还提供了示例。