如果titleLabel.string /单元格内容为空,则删除单元格

时间:2019-01-11 15:01:42

标签: ios swift uitableview

我有以下问题。 example

如果一个单元格没有内容,我想隐藏该单元格。您所看到的逻辑允许不断返回5个单元格:

//Private Subject (so pages can't update it)
private _serviceGroupData: BehaviorSubject<any[]> = new BehaviorSubject<any[]>([]);
//Public observable, that would be used in your page as needed
public readonly serviceGroupData$: Observable<any[]> = this._serviceGroupData.asObservable();

getGroupData(){
    var headers = new Headers();
    headers.append('Content-Type', 'application/x-www-form-urlencoded');
    var get_group_data_url = 'MY_URL_TO_GET_THE_GROUP_DATA';

    this.http.post(get_group_data_url, {headers: headers}).subscribe(data => {
        if(data.json().success){
            //Trigger the observable update here
            this._serviceGroupData.next(data.json());
        }
    });

}

这是实际表视图的逻辑:

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    if(section == 0){
        return 1
    }

    return 5
}

我想我可以用一个简单的for语句来解决它,以检查每个单元格是否有任何内容。您能帮我申请吗?

2 个答案:

答案 0 :(得分:2)

您要解决所有这些错误。 cellForRowAt不是试图隐藏单元格的地方。到调用它时,该单元格将显示出来。

执行以下两项操作之一:

  1. 更新数据源方法使用的数据模型,使其仅包括要显示的数据。或者...
  2. 对不希望看到的行执行heightForRowAt返回0。

答案 1 :(得分:2)

“如果一个单元格没有内容,我想隐藏该单元格。”

那句话表明了对表视图和集合视图如何工作的基本误解。表格视图显示来自数据模型的表格数据。如果您的模型中有空条目,请先将其从模型中删除,然后再将其提供给表格视图。

相关问题