我正在尝试创建一个UItableVIEw,表示25个(比方说)对象,每个对应25个部分,每行1行.
我正在创建的自定义单元格显示正常(所有25个,按正确顺序).我想在每个对象上方显示一个节头视图.
问题是只显示了一个节标题视图(第一个).
明智的NSLogging告诉我,只有一次调用vIEwForheaderInSection,尽管每个对象调用heightForheaderInSection 2x.我从numberOfSectionsIntableVIEw返回25,从numberOfRowsInSection返回1.
我通过执行UIVIEw * headerVIEw = [[UIVIEw alloc] initWithFrame:CGRectMake(0,320,vIEwHeight)]然后添加UILabel和UIbutton在vIEwForheaderInSection中构建UIVIEw.我不是UItableVIEwheaderfooterVIEw的子类.不确定这是否有所不同.
有任何想法吗?
相关代码:
部分和行数:
- (NSInteger)numberOfSectionsIntableVIEw:(UItableVIEw *)tableVIEw{ return [self.objects count];}- (NSInteger)numberOfRowsInSection:(NSInteger)section{ return 1;}
行的高度和单元格:
- (CGfloat)tableVIEw:(UItableVIEw *)tableVIEw heightForRowAtIndexPath:(NSIndexPath *)indexPath{ return 390;}- (UItableVIEwCell *)tableVIEw:(UItableVIEw *)tableVIEw cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object{ static Nsstring *CellIDentifIEr = @"CustomCell"; CustomCell *cell = (CustomCell *)[tableVIEw dequeueReusableCellWithIDentifIEr:CellIDentifIEr]; // add custom content to cell return cell;}
标题的高度和视图:
- (CGfloat)tableVIEw:(UItableVIEw *)tableVIEw heightForheaderInSection:(NSInteger)section{ return 60;}- (UIVIEw *)tableVIEw:(UItableVIEw *)tableVIEw vIEwForheaderInSection:(NSInteger)section{ NSLog(@"in vIEwForheaderInSection %ld",(long)section); // I only see this once NSLog(@"return vIEw for section %ld",section); // this is 0 when I see it // gather content for header UIVIEw *headerVIEw = [[UIVIEw alloc] initWithFrame:CGRectMake(0,vIEwHeight)]; // add content to header (displays correctly) return headerVIEw;}解决方法 虽然为时已晚.经过30分钟的战斗,我在xCode 8.1中找到了解决方案.我把它放在其他可能有帮助的地方.
//添加了波纹管委托方法后,我发现这个被多次调用
- (CGfloat)tableVIEw:(UItableVIEw*)tableVIEw heightForheaderInSection:(NSInteger)section { return 30.0;}总结
以上是内存溢出为你收集整理的ios – 在UITableView中只调用一次viewForHeaderInSection全部内容,希望文章能够帮你解决ios – 在UITableView中只调用一次viewForHeaderInSection所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)