- (UItableVIEwCell*)tableVIEw:(UItableVIEw*) cellForRowAtIndexPath:(NSIndexPath*)indexPath{ static Nsstring *cellID = @"Cell IDentifIEr"; UItableVIEwCell *cell = [tableVIEw dequeueReusableCellWithIDentifIEr:cellID]; if (!cell) { cell = [[UItableVIEwCell alloc] initWithStyle:UItableVIEwCellStyleSubTitle reuseIDentifIEr:cellID]; cell.selectionStyle = UItableVIEwCellSelectionStyleNone; } else { return cell; } UILabel * nameLabel = [[UILabel alloc] initWithFrame: CGRectMake( 0,15,Box.size.wIDth,19.0f)]; nameLabel.text = name; [nameLabel setTextcolor: [UIcolor colorWithRed: 79.0f/255.0f green:79.0f/255.0f blue:79.0f/255.0f Alpha:1.0f]]; [nameLabel setFont: [UIFont FontWithname: @"HelveticaNeue-Bold" size: 18.0f]]; [nameLabel setBackgroundcolor: [UIcolor clearcolor]]; nameLabel.textAlignment = NSTextAlignmentCenter; [cell addSubvIEw: nameLabel];}
那会怎么样?
如果单元格不是nil,并且假设您在第5行,它是否会返回第5行的单元格,并带有确切的文本标签等?
基本上,我的问题是,如果你有自定义单元格的标签,图像视图等.你如何使用cellForRowAtIndexPath与dequeueReusableCellWithIDentifIEr?
解决方法 您尝试将单元格出列.如果尝试失败(单元格为nil),则创建一个单元格并将其配置为视图(而不是视图中的数据).然后,使用任何更改单元格到单元格的数据或设置填充视图.此外,您应该将任何自定义视图添加到单元格的contentVIEw,而不是单元格本身.#define name_LABEL_TAG 1234- (UItableVIEwCell *)tableVIEw:(UItableVIEw *)tableVIEw cellForRowAtIndexPath:(NSIndexPath *)indexPath{ static Nsstring *cellID = @"Cell IDentifIEr"; UItableVIEwCell *cell = [tableVIEw dequeueReusableCellWithIDentifIEr:cellID]; if (!cell) { cell = [[UItableVIEwCell alloc] initWithStyle:UItableVIEwCellStyleSubTitle reuseIDentifIEr:cellID]; cell.selectionStyle = UItableVIEwCellSelectionStyleNone; UILabel * nameLabel = [[UILabel alloc] initWithFrame: CGRectMake( 0,19.0f)]; nameLabel.tag = name_LABEL_TAG; [nameLabel setTextcolor: [UIcolor colorWithRed: 79.0f/255.0f green:79.0f/255.0f blue:79.0f/255.0f Alpha:1.0f]]; [nameLabel setFont: [UIFont FontWithname: @"HelveticaNeue-Bold" size: 18.0f]]; [nameLabel setBackgroundcolor: [UIcolor clearcolor]]; nameLabel.textAlignment = NSTextAlignmentCenter; [cell.contentVIEw addSubvIEw: nameLabel]; } // Populate vIEws with data and retrIEve data for "name" variable UILabel *nameLabel = (UILabel *)[cell.contentVIEw vIEwWithTag:name_LABEL_TAG]; nameLabel.text = name; // Return fully configured and populated cell return cell;}
如果您有一个复杂的单元格,通常更容易在Interface Builder和子类UItableVIEwCell中创建它,因此您可以拥有引用标签,按钮等的自定义属性.
总结以上是内存溢出为你收集整理的ios – 为自定义单元格使用dequeueReusableCellWithIdentifier全部内容,希望文章能够帮你解决ios – 为自定义单元格使用dequeueReusableCellWithIdentifier所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)