我是iOS開發新手。iOS - 僅當表格爲空時,如何增加UITableView的第一行高度?
我想檢查我的表是否爲空。如果是,我想:
第一行顯示的增加身高"No new messages!"
OR
擺脫表,只是在頁面中央顯示"No new messages"
。
我該怎麼做?
我是iOS開發新手。iOS - 僅當表格爲空時,如何增加UITableView的第一行高度?
我想檢查我的表是否爲空。如果是,我想:
第一行顯示的增加身高"No new messages!"
OR
擺脫表,只是在頁面中央顯示"No new messages"
。
我該怎麼做?
(讓我們假設你有一個你想要填充表視圖的數組。這是填充表視圖的一種非常標準的方式。讓我們把這種理論陣列dataArr
)
在您的數據源:
- (NSUInteger)tableView:(UITableView *)tv numberOfRowsInSection:(NSUInteger)section
{
if ([dataArr count] == 0) {
// empty table
return 1;
}
return [dataArr count];
}
- (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)ip
{
UITableViewCell *cell = [tv dequeueReusableCellWithIdentifier:@"someCellID"];
if (cell == nil)
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"someCellID"] autorelease];
if ([dataArr count] == 0) {
// empty table
cell.textLabel.text = @"No new messages";
} else {
// configure as normally
}
return cell;
}
在您的委託:
- (CGFloat)tableView:(UITableView *)tv heightForRowAtIndexPath:(NSIndexPath *)ip
{
if ([dataArr count] == 0) {
// empty table
return 88.0f; // 2 times the normal height
}
// else return the normal height:
return 44.0f;
}
這應有助於:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if ([tableView numberOfRowsInSection:1] == 0) {
return 200;//some other height
}else{
return 44;
}
}
基本上要覈對您的數據源,看看是否有在- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
和- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
沒有消息。例如:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
if ([data count] == 0) return 100;
else return 44;
}
我在哪裏設置數據變量? – user1649385
那麼你需要某種類型的數組或數據結構來填充表格。無論你使用的是數據。 –
我想你有一系列你試圖顯示的消息
您可以自定義高度細胞功能
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
if (messages.count == 0)
return 80;
else
return 44;
}
,然後,當你正在創建的細胞:(確保「沒有新信息」的電池具有比普通電池不同的小區標識,所以你的電池重複使用不會搞砸)
- (UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if (messages.count == 0) {
// create the "No New Messages" cell
}
else {
// create regular cells
}
}
和什麼我需要做的設置文本? – user1649385
@ user1649385看到我的答案。 – 2012-09-05 14:40:10
@ H2CO3 +1你可以有這個... –