标签: tableviewcell

检查UITableViewCell是否完全可见

如何检查UITableViewCell是否在屏幕上完全可见(不是通过选项卡或导航栏切断)?

我可以使用以下代码获取可见单元格:

NSArray *indexes = [_tableView indexPathsForVisibleRows];
Run Code Online (Sandbox Code Playgroud)

但我想排除屏幕中不完全可见的单元格.

objective-c viewport uitableview tableviewcell ios

2
推荐指数
1
解决办法
3027
查看次数

在64位iOS7.1模拟器上运行时,Autolayout代码崩溃

一切顺利,直到升级到Xcode 5.1,当我尝试在64位iOS7.1模拟器上运行时我的应用程序崩溃,但在32位模拟器上仍然很好.

崩溃消息在这里:

2014-03-18 16:58:31.451 MyApp[8645:90b] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want.   Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) 
(
    "<NSLayoutConstraint:0x109391530 V:|-(5)-[UILabel:0x109390630]   (Names:     '|':UITableViewCellContentView:0x109390060 …
Run Code Online (Sandbox Code Playgroud)

tableviewcell ios autolayout arm64

2
推荐指数
1
解决办法
2643
查看次数

将'UITableViewCell'类型的值转换为Custom Cell

我通常从来没有遇到过这个步骤的问题,但由于某种原因,当我重新设置我的故事板时,我的代码部分存在问题:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCellWithIdentifier("Cell") as! UITableViewCell

    (cell as! TableViewCell).usernameLabel.text = friendsArray[indexPath.row] as String


    return cell
}
Run Code Online (Sandbox Code Playgroud)

我做了所有明显的事情,比如确保单元格标识符是"Cell".

我的错误是这样的:

无法将'UITableViewCell'(0x1094ada18)类型的值转换为'YOpub.TableViewCell'(0x106620410).

编辑:问题是我的didLoad函数中有self.tableView.registerClass(UITableViewCell.self,forCellReuseIdentifier:"Cell").删除此行后,我的代码再次运行.

uitableview tableviewcell ios swift

2
推荐指数
1
解决办法
9169
查看次数

滚动表格视图后点击以选择行时,如何解决崩溃问题?

我有一个这样的表视图:

在此处输入图片说明

当用户点击一行时,我要取消选中最后一行并选中选定的行。所以我写了这样的代码:(例如,我的lastselected = 0)

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

        var lastIndexPath:NSIndexPath = NSIndexPath(forRow: lastSelected, inSection: 0)
        var lastCell = self.diceFaceTable.cellForRowAtIndexPath(lastIndexPath) as! TableViewCell
        var cell = self.diceFaceTable.cellForRowAtIndexPath(indexPath) as! TableViewCell


        lastCell.checkImg.image = UIImage(named: "uncheck")

        cell.checkImg.image = UIImage(named: "check")

        lastSelected = indexPath.row

}
Run Code Online (Sandbox Code Playgroud)

当我连续滚动而不滚动时,一切正常。我意识到,当我运行代码并立即滚动表并选择一行时。我的程序将崩溃并显示错误:“致命错误:在展开可选值时意外发现nil”

该行显示错误:

在此处输入图片说明

我不知道这里有什么问题吗?

xcode uitableview tableviewcell ios swift

2
推荐指数
1
解决办法
1122
查看次数

动态设置tableview单元格行高?

我有一个带有标签和图像的tableview.在一些细胞中,没有像我用来imageView.removeFromSuperview()将其从细胞中移除的图像.当单元格中有图像时,行高为445并且"自定义"被检查.

如何根据标签的长度动态设置行高,而不是在删除imageview后imageview的长度/大度?

xcode uitableview uiimageview tableviewcell swift

2
推荐指数
1
解决办法
8462
查看次数

异步更新表格单元格图像

我从json下载图像链接,然后在表视图开始创建其单元格后创建图像:

 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! TableViewCellController

            DispatchQueue.main.async(execute: { () -> Void in

                if let url = NSURL(string: self.movies[indexPath.row].image) 
                {

                    if let data = NSData(contentsOf: url as URL)
                    {
                        let imageAux = UIImage((data: data as Data))
                        cell.movieImage.image = imageAux
                        self.tableView.reloadData()

                    }
                }
            })

        cell.name = self.movies[indexPath.row].name
        cell.date = self.movies[indexPath.row].date
        return cell
}
Run Code Online (Sandbox Code Playgroud)

这样工作正常,但表视图变得非常慢,不是在渲染时,而是在滚动时.我一直在检查RAM和CPU,两者都非常低,但我的网络使用量不断上升但是图像已经在单元格上,所以这意味着它已经完成了.(对于这个测试我只调用2个电影的JSON,所以2个图像)

在我开始这样做之前,我的总下载量大约为200kb(带图像),现在它在我停止项目之前已超过2MB.

我做错了什么?

json asynchronous tableviewcell ios swift

2
推荐指数
1
解决办法
1016
查看次数

从TableViewCell中的操作访问ViewController

我有带ViewView的ViewController。在此TableView的每个单元格中,都有几个按钮(因此我不能使用didSelectRow)。

按下按钮时,我需要从操作获取父ViewController。因此,我将此函数添加到我的自定义单元格类中:

@IBAction func editBtnPressed (_ sender: Any) {

}
Run Code Online (Sandbox Code Playgroud)

我需要自我介绍才能为其添加一些子视图。我怎样才能以自己的身份访问根ViewController ?

uitableview tableviewcell ios swift

2
推荐指数
1
解决办法
1618
查看次数

cellForRow(at:indexPath)返回nil并崩溃我的swift应用程序

在我的swift应用程序中,我正在显示细胞UITableView,前10个细胞包含照片.我决定为每个单元格添加一个视差效果,这样当用户上下滚动表格时 - 图像会改变它的偏移量.

这是我从我的webservice获取数据并最初将其添加到tableview的方法:

func makePostQueryForFetchingData(_ parameters: [String:AnyObject], url: String, type: String)
{
    Alamofire.request(url, method: .post, parameters: (parameters), encoding: JSONEncoding.default)
        .validate()
        .responseJSON { response in

            switch response.result {
            case .success:
                DispatchQueue.main.async(execute: {
                    items.removeAllObjects()
                    tview.reloadData()
                    if let jsonData = response.result.value as? [[String: AnyObject]] {
                        for singleJSON in jsonData {
                            if let single = SingleNode.fromJSON(JSON(singleJSON)){
                                    self.items.add(single)
                            } 
                        }
                    }  
                    self.refreshController.endRefreshing()
                    print("before crash")
                    self.tview.reloadData()
                    print("end")
                })
            case .failure(let error):
               print(error)
            } 
    }
}
Run Code Online (Sandbox Code Playgroud)

当我在启动时运行此功能 - 一切正常.但是,如果我向下滚动表格,然后快速向上滚动并拉动刷新 - 应用程序崩溃.

在拉动刷新我从上面调用函数. …

uitableview tableviewcell ios swift swift3

2
推荐指数
1
解决办法
2296
查看次数

Swift,自动调整自定义表视图单元格

在我的应用程序中,我有一个表格视图,每个单元格中都有图像,标签和文本视图.我希望能够根据文本视图中的内容量自动调整单元格大小.(文本视图是最低的文本.)

到目前为止,我已经添加了正确的约束; 文本视图的前导,尾随,顶部和底部,并禁用滚动和编辑.

在我的tableViewController.swift文件中,我编写了这段代码:

override func viewWillAppear(_ animated: Bool) { tableView.estimatedRowHeight = 100 tableView.rowHeight = UITableViewAutomaticDimension }

但是,这不起作用,因为当我向文本视图添加更多文本时,它只是切断了.

也许这与卡片看起来有关,我在每个单元格中都有一个UIView作为卡片.

老实说,我不知道自己做错了什么

下面的图片是我的应用程序的样子,如果有人可以提供帮助,那将非常感激

在此输入图像描述

xcode uitableview tableviewcell swift swift3

2
推荐指数
3
解决办法
1万
查看次数

如何淡出表格选择

当我的应用程序中选择了tableview单元格时,它将保持选中状态,直到选择了不同的单元格.

如何在与Apple的"查找我的朋友"应用程序和"查找我的iPhone"应用程序类似的一两秒之后突出显示tableview单元格.将In Miles的距离切换为In Kilometers时,您可以看到单元格突出显示,然后突出显示淡出.

uitableview tableviewcell ios swift

1
推荐指数
1
解决办法
560
查看次数