UITableView会自行更改其样式

时间:2013-07-22 01:43:40

标签: objective-c cocoa-touch uitableview xib

我第一次遇到这种问题。

我的ViewController上有UITableView,我在IB中选择了Grouped样式。 因此,当我在iPad上运行我的应用程序时,它是分组的样式,一切正常,但有时UITableView's样式变为Plain。我不会在代码或其他任何地方改变它,它只是自己改变它。

·H

@property (nonatomic, retain) IBOutlet UITableView *myTableView;

的.m

myTableView.backgroundColor = [UIColor clearColor];
myTableView.opaque = NO;
myTableView.backgroundView = nil;

我尝试删除XIB并创建一个新的,但它仍然是同一个问题。 有什么想法吗?

UPD

好的,我不知道怎么回事,但我的同名项目中有两个相同的xib。在一个xib我有普通风格,在第二个我有分组风格;所以它解释了为什么有时我有Grouped和somteimes Plain Style。我刚刚删除了其中一个并修复了问题。

1 个答案:

答案 0 :(得分:1)

UITableView样式不会自动更改,除非您在xib或代码中更改样式。请仔细检查您的代码天气你是否正在改变风格,并确保你正确连接数据源和代表。
听到是另一种你可以在代码中创建一个而不是在xib中的方法。 在代码中创建tableview,代码给你一些想法。


 @interface ViewController ()<UITableViewDataSource,UITableViewDelegate>

 {

 UITableView *aTableVIew;
 }

@end

  @implementation ViewController


 - (void)viewDidLoad
{

  [super viewDidLoad];
  //Do any additional setup after loading the view, typically from a nib.

aTableVIew = [[UITableView alloc]initWithFrame:self.view.bounds  style:UITableViewStyleGrouped];

aTableVIew.dataSource = self;
aTableVIew.delegate = self;
[self.view addSubview:aTableVIew];
}


 - (void)didReceiveMemoryWarning
 {
       [super didReceiveMemoryWarning];
      //Dispose of any resources that can be recreated.
}


  -(void)dealloc
  {
       [aTableVIew release];
       [super dealloc];
  } 

 -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{

   return 2;

}

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

   return 2;
}

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

    UITableViewCell *cell = [aTableVIew dequeueReusableCellWithIdentifier:@"cell"];
    if(cell == nil)
{

      cell = [[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault  reuseIdentifier:@"cell"]autorelease];
  }
  if(indexPath.section == 0)
  {
     cell.textLabel.text = @"Hello";
  }
  else if (indexPath.section == 1)
  {
    cell.textLabel.text = @"World";
  }
  else
  {
     cell.textLabel.text = @"Happy coding";
  }
  return cell;
 }

 @end