ios - UITableView重复重复单元格

标签 ios objective-c uitableview

所以我有这个UITableView,并且它一遍又一遍地重复单元格,我不知道为什么,我已经尝试过谷歌搜索并查看其他类似的堆栈溢出问题,但是它们中的任何解决方案似乎都无法解决我遇到的问题。

我的代码如下:

NSArray在ViewDidLoad方法中:

tableViewContents = @[
    @"Infosecurity Netherlands:4th November:Jaarbeurs Utrecht-Utrecht,Netherlands:www.infosecurity.nl/",
    @"MiCS Monaco International Clubbing Show:4th - 6th November:Grimaldi Forum-Monaco, Monaco:www.mics.mc/",
    @"New York Audio Show 2015:6th - 8th November:Hilton Westchester-Rye Brook, NY:www.chestergroup.org/newyorkaudioshow/2015",
    @"Tecno Multimedia InfoComm 2015:10th - 12th November:Corferias-Bogota, Columbia:www.tecnomultimedia.com/",
    @"Productronica 2015:10th - 13th November:New Munich Trade Show Center-Munich, Germany:productronica.com/en/home",
    @"CCW featuring SATCON co-located InfoComm Connections:11th November:Jacob Javits Center, New York, NY:www.ccwexpo.com/",
    @"IAAPA Attractions Expo 2015:16th - 20th November:Orange County Convention Center-Orlando, FL:www.iaapa.org/expos/iaapa-attractions-expo/",
    @"Streaming Media West 2015:17th November:Hyatt Regency Huntington Beach-Huntington Beach, CA:www.streamingmedia.com/Conferences/",
    @"SATIS:17th - 19th November:Porte de Versailles-Paris, France:www.satis-expo.com/",
    @"ISC East Expo 2015:18th November:Jacob K. Javits Convention Center-New York, NY:www.isceast.com/",
    @"WFX Worship Facilities Conference and Expo:18th November:Music City Center-Nashville, TN:wfxweb.com/",
    @"Inter BEE 2015:18th - 20th November:Makuhari Messe-Chiba, Japan:www.inter-bee.com/en/",
    @"AV Executive Conference:18th - 20th November:TBA-Amelia Island, FL:www.infocomm.org/cps/rde/xchg/infocomm/hs.xsl/39221.htm",
    @"JTSE Performance & Entertainment Technical Show & Convention 2015:24th November:Dock Pullman, Porte de la Chapelle-Paris, France:www.jtse.fr/en/index.php",
    @"Government Video Expo 2015:1st - 3rd December:Walter E. Washington Convention Center-Washington, DC:www.gvexpo.com/",
    @"IIDEX Canada:2nd December:Metro Toronto Convention Centre North-Toronto, ON, Canada:www.iidexcanada.com/",
    @"IABM Annual International Business Conference 2015:3rd December:TBA:www.theiabm.org/",
    @"SMSS The Social Media Strategies Summit Dallas:8th December:The Magnolia Hotel-Dallas, TX:www.socialmediastrategiessummit.com/dallas-2015/",
    @"CineAsia:8th - 10th December:Hong Kong Convention & Exhibition Centre-Hong Kong, China:www.vnufilmgroup.com/cineasia",
    @"CeBIT Bilisim Eurasia:17th - 19th December:Istanbul Expo Center-Istanbul, Turkey:www.cebitbilisim.com/en/index.php"
    ];

表格检视方法
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {

//Amount of sections
return 1;

}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

//Amount of rows in each section
return [tableViewContents count];

}

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


NSString *contentsString = tableViewContents[indexPath.row];
NSArray *contentsArray = [contentsString componentsSeparatedByString:@":"];

//Cell Identifier
static NSString *simpleIdentifier = @"simpleIdentifier";

UILabel *eventNameLabel;
UILabel *eventDateLabel;
UILabel *eventLocationLabel;

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleIdentifier];
if (cell == nil) {

    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleIdentifier];

    eventNameLabel = [[UILabel alloc]init];
    eventDateLabel = [[UILabel alloc]init];
    eventLocationLabel = [[UILabel alloc]init];


    eventNameLabel.frame = CGRectMake(10, 10, 300, 20);
    eventNameLabel.font = [UIFont boldSystemFontOfSize:14];
    eventNameLabel.textColor = [UIColor colorWithRed:231.0f/255.0f
                                               green:123.0f/255.0f
                                                blue:50.0f/255.0f
                                               alpha:1.0f];


    eventDateLabel.frame = CGRectMake(10, 40, 300, 20);
    eventDateLabel.font = [UIFont systemFontOfSize:12];
    eventDateLabel.textColor = [UIColor grayColor];

    eventLocationLabel.frame = CGRectMake(10, 70, 300, 20);
    eventLocationLabel.font = [UIFont systemFontOfSize:12];
    eventLocationLabel.textColor = [UIColor grayColor];

    [cell addSubview:eventNameLabel];
    [cell addSubview:eventDateLabel];
    [cell addSubview:eventLocationLabel];

}

eventNameLabel.text = contentsArray[0];
eventDateLabel.text = contentsArray[1];
eventLocationLabel.text = contentsArray[2];


//Return Cell
return cell;

}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 100;
}

Start of the UITableView

Here the UITableView has stared to repeat the first couple of cells

预先感谢您的帮助。

最佳答案

对于您的要求的明显答案是自定义单元格。不必按照cellforrowaatIndexpath方法进行所有编码,而是根据需要自定义单元格并将其用于表。处理自定义单元会容易得多。请参阅这些链接,以了解如何自定义tableViewCell。 http://www.appcoda.com/customize-table-view-cells-for-uitableview/http://www.appcoda.com/ios-programming-customize-uitableview-storyboard/用于自定义单元格。

关于ios - UITableView重复重复单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33534021/

相关文章:

ios - 自定义表格 View 标题的左上角和右上角

ios - Localytics ios 推送设备 token

ios - Swift:将文件导入桥接 header 时出现段错误 11

ios - UItableview scrollToRowAtIndexPath 没有正确显示最后一行

ios - Objc <-> Swift 泛型函数的兼容性

objective-c - COCOA:用枚举填充弹出按钮

ios - 如何在 swift 中等到文本标签的 firstResponder 为 false

ios - 在 UIAlertController 之前快速执行的 segue

ios - 使用 contains 检查 NSManagedObject Array 是否具有特定键的值

ios - 如何从 URL IOS 9 获取 DailyMotion 视频 ID