0

我第一次遇到这种问题。

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

。H

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

.m

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

我试图删除XIB并创建一个新的,但它仍然是同样的问题。有任何想法吗?

更新

好的,我不知道怎么做,但是我的项目中有 2 个同名的 xib。在一个xib中,我有Plain Style,而在第二个xib中,我有Grouped style;所以它解释了为什么有时我有 Grouped 和somteimes Plain Style。我刚刚删除了其中一个,它解决了问题。

4

1 回答 1

1

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


 @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


于 2013-07-22T11:52:01.587 回答