6959


下記のソースコードでセクション全てを隠すことはできましたが、  
セクション1内の特定のセルだけを隠したいです。  
iOSに明るくないため、方法を知っている方がいましたらよろしくお願いします。

隠す条件はCellのテキストで判断しようと思っています。  
Cellの中にはContentViewがあり、左右にラベルが配置してあります。  
ストーリーボードのstatic cellを使用しています。

[code]

    - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
    {
        if (indexPath.section == 1) {    // セクション1内セルをすべて非表示
            cell.hidden = YES;
        }
    }
    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        if (indexPath.section == 1) {    // セクション1内のセルの高さをすべて０に
            return 0;
        } else {
            return [super tableView:tableView heightForRowAtIndexPath:indexPath];
        }
    }
    
[/code]


CC BY-SA 3.0
2015-02-23T07:37:40.767
6956
2015-02-23T08:40:58.153
2015-02-23T07:40:30.720
3516
3496
question
ios iphone uitableview
UITableViewの特定セクションの特定のCellを特定条件で隠したい


viewDidLoadで消したいセルのテキストは空文字列にしておく。

以下は、セルの中のcontentViewに二つラベルがあり、右側が空文字列だったら消す処理です。

[code]

    - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell 
    
    *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
    {
        if (indexPath.section == 1) { // セクション1内のセルが対象
            UILabel *l = (UILabel*)cell.contentView.subviews[1];
            NSString *str = l.text;
            if([str length] == 0){  // このセルが空文字列だったら隠す
                cell.hidden = YES;
            }
        }
    }
    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
        if (indexPath.section == 1) {  // セクション1内のセルが対象
    
            UITableViewCell *cell = [self tableView:tableView cellForRowAtIndexPath:indexPath];
            UILabel *l = (UILabel*)cell.contentView.subviews[1];
            NSString *str = l.text;
            if([str length] == 0){  // このセルが空文字列だったら隠す
                return 0;
            }
    
            return [super tableView:tableView heightForRowAtIndexPath:indexPath];
    
        } else {
            return [super tableView:tableView heightForRowAtIndexPath:indexPath];
        }
    }
    
[/code]


CC BY-SA 3.0
2015-02-23T08:40:58.153
6959
2015-02-23T08:40:58.153
3496
6956
answer