UITableView中的TableCell视图未出现在模拟器iOS7中

时间:2014-01-07 00:13:33

标签: ios objective-c uitableview

我一直在阅读疯狂的文档试图解决我的问题,但我不相信我的问题太难了,我可能会错了。这是我的UIViewController

这就是模拟器中的样子:

imgur image

我只需要我的填充单元格实际出现在模拟器中。我在.h:

中使用此设置数据和委托源
@property (weak, nonatomic) IBOutlet UITableView *grTableView;
@property(nonatomic, assign) id<UITableViewDataSource> dataSource;
@property(nonatomic, assign) id<UITableViewDelegate> delegate;

这在viewDidLoad .m:

grTableView.dataSource = self;
grTableView.delegate = self;

我想用这种方法设置间距(我知道我可以使用约束,但我不确定如何):

-(CGFloat)tableView:(UITableView*)tableView heightForHeaderInSection:(NSInteger)section
{
    if(section == 0)
        return 6;
    return 1.0;
}

-(CGFloat)tableView:(UITableView*)tableView heightForFooterInSection:(NSInteger)section
{
    return 5.0;
}

-(UIView*)tableView:(UITableView*)tableView viewForHeaderInSection:(NSInteger)section
{
    return [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
}

-(UIView*)tableView:(UITableView*)tableView viewForFooterInSection:(NSInteger)section
{
    return [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
}

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

我目前也正在尝试使用这些方法实现细胞(当我删除这些方法时,细胞边界在模拟器中显示为灰色线条,但 未填充<)>:< / p>

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;
- (NSInteger)numberOfRowsInSection:(NSInteger)section;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;

如何让我的单元格(在故事板中)中的对象出现在模拟器中? 如果您需要查看文档大纲 .m .h ,或其他模拟器运行请求它和我将发布。

P.S。底部的UIButton使用bottomLayoutGuide进行约束。

编辑:以下是cellForRowAtIndexPath:方法的实现:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return grImageNameCell;
    return grBioCell;
}

这里是那些IBOutlets的.h代码:

@property (weak, nonatomic) IBOutlet UITableViewCell *grImageNameCell;
@property (weak, nonatomic) IBOutlet UITableViewCell *grBioCell;

2 个答案:

答案 0 :(得分:1)

使用CellIdentifiers是原型细胞所必需的。这就是代码如何知道在Interface Builder中使用哪个单元。

所以,你需要在这里做一些事情:

首先,在Interface Builder

中为每个原​​型单元格设置唯一的单元标识符

设置你的cellForRowAtIndexPath方法:

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

{
   NSString* CellID1 = @"CellID1";
   NSString* CellID2 = @"CellID2";

   UITableViewCell* cell;

   if (indexPath.section == 0)
   {
      cell = [tableView dequeueReusableCellWithIdentifier:CellID1];
   }
   else
   {
      cell = [tableView dequeueReusableCellWithIdentifier:CellID2];
   }

   return cell;
}

注意:CellID1和CellID2是标识符。

答案 1 :(得分:0)

用于简单的单元格加载:

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

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
     return self.objectsArray.count;//where this is your array that you'll use to populate cells
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{        
    static NSString *CellIdentifier = @"identifier here";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    return cell;
}