我一直在阅读疯狂的文档试图解决我的问题,但我不相信我的问题太难了,我可能会错了。这是我的UIViewController
:
这就是模拟器中的样子:
我只需要我的填充单元格实际出现在模拟器中。我在.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;
答案 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;
}