iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 如何删除UITableView节头删除后创建的空间?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个UITableView.这是动态表.当您触摸“添加文件”按钮时,我正在创建一个新的部分和行.如果再次触摸,我只会创建一行.当你触摸“添加号码”按钮时,我只会创建一行.还行吧.但是如果你删除第一部分,第二部分不会集中到顶部.我正在添加一些截图和我的所有代码.

请帮我.

这是我的第一个屏幕

添加一个文件”和两个“数字”

删除了“文件”但第二部分没有上传.

代码

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController
@synthesize tblListe,btnCancel,btnEdit;
- (void)viewDidLoad {
    [super viewDidLoad];
    self.automaticallyAdjustsScrollViewInsets = NO;
    FileArr = [[NSMutableArray alloc] init];
    numberArr = [[NSMutableArray alloc] init];
}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    int a=0;
    if (section==0) {
        if(FileArr.count>0)
            a=FileArr.count;
    } else {
        if(numberArr.count>0)
            a=numberArr.count;
    }
    return a;
}

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    return 2;
}

-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
    return 37.0;
}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowATindexPath:(NSIndexPath *)indexPath{
    UITableViewCell *hucre = [[UITableViewCell alloc] init];
    if(indexPath.section==0){
        hucre.textLabel.text=[FileArr objectATindex:indexPath.row];
    }else{
        hucre.textLabel.text=[numberArr objectATindex:indexPath.row];
    }
    hucre.accessoryType = UITableViewCellAccessoryDisclosureInDicator;
    return hucre;
}

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    UIView *AnaView=[[UIView alloc]initWithFrame:CGRectMake(0,self.view.frame.size.width,0)];

    UIView *AsilView=[[UIView alloc]initWithFrame:CGRectMake(5,35)];

    CGRect labelFrame = CGRectMake(5,self.view.frame.size.width/3,35);
    UILabel *myLabel = [[UILabel alloc] initWithFrame:labelFrame];
    int say=0;
    if(section==0){
        myLabel.text = @"Files";
        say=FileArr.count;
    }else{
        myLabel.text = @"numbers";
        say=numberArr.count;
    }
    myLabel.font = [UIFont boldSystemFontOfSize:14.0f];
    myLabel.textAlignment =  NSTextAlignmentCenter;
    myLabel.textColor = [UIColor whiteColor];
    myLabel.BACkgroundColor = [self colorWithHexString:@"ce1b27"];

    UIView *LineView=[[UIView alloc]initWithFrame:CGRectMake(5,AsilView.frame.size.height,self.view.frame.size.width-5,2)];
    LineView.BACkgroundColor = [self colorWithHexString:@"ce1b27"];

    [AnaView addSubview:AsilView];
    [AnaView addSubview:myLabel];
    [AnaView addSubview:LineView];
    if (say>0) {
        return AnaView;
    }else{
        return nil;
    }
}

-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
    NSString *x;
    if (section==0) {
        if(FileArr.count>0)
            x=@"Files";
        else
            x=nil;
    } else {
        if (numberArr.count>0)
            x=@"numbers";
        else
            x=nil;
    }
    return x;
}

-(NSString *)tableView:(UITableView *)tableView titleFordeleteConfirmationButtonForRowATindexPath:(NSIndexPath *)indexPath{
    return @"delete";
}

-(void)tableView:(UITableView *)tableView commitEdiTingStyle:(UITableViewCellEdiTingStylE)ediTingStyle forRowATindexPath:(NSIndexPath *)indexPath{
    if(ediTingStyle == UITableViewCellEdiTingStyleDelete){
        if (indexPath.section==0) {
            [FileArr removeObjectATindex:indexPath.row];
        }else{
            [numberArr removeObjectATindex:indexPath.row];
        }
    }
    [self SatirIslem:0];
    //NSLog(@"%@",FileArr);
    [tblListe reloadData];
}

-(BOOL)tableView:(UITableView *)tableView canEditRowATindexPath:(NSIndexPath *)indexPath{
    return YES;
}

- (IBACtion)Duzenle:(id)sender {
    [tblListe setEdiTing:YES animated:YES];
    btnCancel.enabled = YES;
}

- (IBACtion)Iptal:(id)sender {
    [tblListe setEdiTing:NO animated:YES];
    btnCancel.enabled = NO;
}

- (IBACtion)DosyaEkle:(id)sender {
    [FileArr addObject:@"This is a File"];
    [self SatirIslem:1];
}
- (IBACtion)NumaraEkle:(id)sender {
    [numberArr addObject:@"This is a number"];
    [self SatirIslem:1];
}

-(void)SatirIslem:(NSInteger) islem{
    CGFloat x=0,y=0,w=0,h=0;
    if (islem==1) { // satır Ekle
        x=tblListe.frame.origin.x;
        y=tblListe.frame.origin.y;
        w=tblListe.frame.size.width;
        h=tblListe.frame.size.height;
        if(FileArr.count==1 || numberArr.count==1){
            h+=35+44; // 35 header için 44 satır için
        }else{
            h+=44;
        }

    }

    if (islem==0) {
        x=tblListe.frame.origin.x;
        y=tblListe.frame.origin.y;
        w=tblListe.frame.size.width;
        h=tblListe.contentSize.height;
        if(FileArr.count==0 && numberArr.count==0){
            h=1;
        }else if(FileArr.count==0 || numberArr.count==0) {
            h-=44+35;// 35 header için 44 satır için
        }else{
            h-=44;
        }
    }
    tblListe.frame=CGRectMake(x,y,w,h);
    [tblListe reloadData];
}

-(UIColor*)colorWithHexString:(NSString*)hex
{
    NSString *cString = [[hex StringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];

    if ([cString length] < 6) return [UIColor grayColor];
    if ([cString hasPrefix:@"0X"]) cString = [cString subStringFromIndex:2];    
    if ([cString length] != 6) return  [UIColor grayColor];    
    NSRange range;
    range.LOCATIOn = 0;
    range.length = 2;
    NSString *rString = [cString subStringWithRange:range];    
    range.LOCATIOn = 2;
    NSString *gString = [cString subStringWithRange:range];    
    range.LOCATIOn = 4;
    NSString *bString = [cString subStringWithRange:range];    
    unsigned int r,g,b;
    [[NSScAnner scAnnerWithString:rString] scanHexInt:&r];
    [[NSScAnner scAnnerWithString:gString] scanHexInt:&g];
    [[NSScAnner scAnnerWithString:bString] scanHexInt:&b];   
    return 
    [UIColor colorWithRed:((float) r / 255.0f)green:((float) g / 255.0f)                         blue:((float) b / 255.0f)alpha:1.0f];
}

@end

解决方法

您可以通过返回高度的不同值来解决此问题.

-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
  if (section==0) {
    if(FileArr.count==0)
      return 0;
  } else {
    if(numberArr.count==0)
      return 0;
  }
  return 37.0;
}

大佬总结

以上是大佬教程为你收集整理的ios – 如何删除UITableView节头删除后创建的空间?全部内容,希望文章能够帮你解决ios – 如何删除UITableView节头删除后创建的空间?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。