0

このような問題に直面するのは初めてです。

UITableViewViewController を使用しており、GroupedIB でスタイルを選択しました。そのため、iPad でアプリを実行すると、グループ化されたスタイルですべて問題ありませんが、UITableView'sスタイルがPlain. コードなどのどこでも変更しません。それ自体が変更されるだけです。

.h

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

.m

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

を削除しXIBて新しいものを作成しようとしましたが、それでも同じ問題です。何か案は?

更新日:

OK、方法はわかりませんが、プロジェクトに同じ名前の同じ xib が 2 つありました。そして、1 つの xib にはプレーン スタイルがあり、2 つ目の xib にはグループ化されたスタイルがありました。そのため、グループ化されたプレーンスタイルを時々使用した理由が説明されています。それらの1つを削除しただけで、問題は解決しました。

4

1 に答える 1

1

UITableView スタイルは、xib またはコードでスタイルを変更しない限り、自動的には変更されません。スタイルを変更しているかどうかを注意深く確認し、データソースとデリゲートが適切に接続されていることを確認してください。
Hear は、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 に答える