草庐IT

iOS swift : Tableview data disappear when i scroll it

coder 2023-09-10 原文

我已经开始进行 Swift 编程,并且对 tableview 控件不太了解。为了实现,我编写了以下代码,但是当我滚动它时数据消失了。

import UIKit

class ViewController: UIViewController {

    @IBOutlet  var tblView: UITableView

    var Array = ["1","2","3","4","5"]

    override func viewDidLoad() {
        super.viewDidLoad()

        tblView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {

        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


    @IBAction func moveToNextView(sender: AnyObject) {

        var objNextViewController : NextViewController = NextViewController(nibName: "NextViewController", bundle: nil)
        self.navigationController.pushViewController(objNextViewController, animated: true)

    }

    func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int {
        return Array.count
    }

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

        //var cell : UITableViewCell! = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "cell")

        var cell:UITableViewCell = tblView.dequeueReusableCellWithIdentifier("cell") as UITableViewCell
        var lblPrint : UILabel! = UILabel(frame: CGRectMake(10, 10, 100, 100))
        lblPrint.text = Array[indexPath.row]
        cell.contentView.addSubview(lblPrint)

        return cell
    }

}

上述代码的正确编写方法是什么?

谢谢

最佳答案

问题是每次出现单元格时,您都在添加 var lblPrint : UILabel!

您可以使用 UITableViewCell.textLabel 而不是添加自定义标签字段。

例如:

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

    //var cell : UITableViewCell! = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "cell")

    var cell:UITableViewCell = tblView.dequeueReusableCellWithIdentifier("cell") as UITableViewCell
    cell.textLabel = Array[indexPath.row]
    return cell
}

您也可以尝试创建带有自定义标签的自定义单元格,或者您应该检查 lblPrint 是否已存在于单元格的 contentView 中。

关于iOS swift : Tableview data disappear when i scroll it,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25157123/

有关iOS swift : Tableview data disappear when i scroll it的更多相关文章

  1. ruby-on-rails - rails : save file from URL and save it to Amazon S3 - 2

    从给定URL下载文件并立即将其上传到AmazonS3的更直接的方法是什么(+将有关文件的一些信息保存到数据库中,例如名称、大小等)?现在,我既不使用Paperclip,也不使用Carrierwave。谢谢 最佳答案 简单明了:require'open-uri'require's3'amazon=S3::Service.new(access_key_id:'KEY',secret_access_key:'KEY')bucket=amazon.buckets.find('image_storage')url='http://www.ex

  2. ruby - 你会如何在 Ruby 中表达成语 "with this object, if it exists, do this"? - 2

    在Ruby(尤其是Rails)中,您经常需要检查某物是否存在,然后对其执行操作,例如:if@objects.any?puts"Wehavetheseobjects:"@objects.each{|o|puts"hello:#{o}"end这是最短的,一切都很好,但是如果你有@objects.some_association.something.hit_database.process而不是@objects呢?我将不得不在if表达式中重复两次,如果我不知道实现细节并且方法调用很昂贵怎么办?显而易见的选择是创建一个变量,然后测试它,然后处理它,但是你必须想出一个变量名(呃),它也会在内存中

  3. ruby - Chef : Read variable from file and use it in one converge - 2

    我有以下代码,它下载一个文件,然后将文件的内容读入一个变量。使用该变量,它执行一个命令。这个配方不会收敛,因为/root/foo在编译阶段不存在。我可以通过多个聚合和一个来解决这个问题ifFile.exist但我想用一个收敛来完成它。关于如何做到这一点有什么想法吗?execute'download_joiner'docommand"awss3cps3://bucket/foo/root/foo"not_if{::File.exist?('/root/foo')}endpassword=::File.read('/root/foo').chompexecute'join_domain'd

  4. ruby-on-rails -/it/和/\Ait\Z/有什么区别 - 2

    在Ruby中,这两个表达式看起来做的事情相似:'it'=~/^it$/#0'it'=~/\Ait\Z/#0#but/^it$/==/\Ait\Z/#false所以我想知道^-\A和$-\Z和如何选择使用哪一个? 最佳答案 仅当您匹配的字符串可以包含新行时,差异才重要。\A匹配字符串的开头。^匹配字符串的开头或紧跟在新行之后。同样\Z只匹配字符串的结尾,而$匹配字符串的结尾或者一行的结尾。例如正则表达式/^world$/匹配“hello\nworld”的第二行,但表达式/\Aworld\Z/匹配失败。

  5. ruby-on-rails - 每当 gem : I set :output but the logfile doesn't show up where I'd expect it to - 2

    在我的schedule.rb文件中,我有以下几行:set:output,'/log/cron_log.log'every5.minutesdocommand'echo"hello"'end我按照这个问题Rails,usingwhenevergemindevelopment中的建议运行了whenever-w,并且我假设cronfile已编写并正在运行。(我也尝试重新启动Rails服务器。)当我运行$crontab-l时,我看到以下内容:0,5,10,15,20,25,30,35,40,45,50,55****/bin/bash-l-c'echo"hello">>/log/cron_log

  6. ruby 正则表达式 : "capture string unless it is followed by..." - 2

    我的正则表达式捕获引用的短语:"([^"]*)"我想通过忽略引号来改进它,引号后跟',-'(按此特定顺序排列的逗号、空格和破折号)。我该怎么做?测试:http://rubular.com/r/xls6vN1w92 最佳答案 这应该可以做到,使用NegativeLookahead:"(?!,-)([^"]*)"(?!,-)有点恶心,但它有效。您要确保引号后面没有跟您的字符串,否则匹配将从结束引号开始。http://rubular.com/r/yFMyUKJOHL 关于ruby正则表达式:"

  7. ruby - 如何 to_enum( :method) receive its block here? - 2

    这段代码来self发现的一个示例,计算数组中等于其索引的元素数。但是怎么办?[4,1,2,0].to_enum(:count).each_with_index{|elem,index|elem==index}我无法仅通过链接来完成,而且链中的求值顺序令人困惑。我的理解是我们正在使用Enumerable#count的重载,如果给定一个block,它会计算产生真值的元素的数量。我看到each_with_index具有判断项目是否等于其索引的逻辑。我不明白的是each_with_index如何成为count的block参数,或者为什么each_with_index像被调用一样工作直接在[4,

  8. ruby - Textmate 错误重复行 "ruby: warning: -K is specified; it is for 1.8 compatibility and may cause odd behavior" - 2

    在Textmate中使用ctrl+shift+d快捷方式重复行时,出现以下错误:“ruby:警告:指定了-K;这是为了1.8兼容性,可能会导致奇怪的行为” 最佳答案 此问题不仅限于重复行,还可能出现在其他使用ruby​​的地方。我通过将Preferences...>Advanced>ShellVariables中的PATH更改为/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin来解决它:/usr/bin:/bin:/usr/sbin:/sbin此更改后,Tex

  9. 从零开始学习Linux运维,成为IT领域翘楚(二) - 2

    文章目录🔥Linux系统目录结构🔥Linux用户和用户组🔥Linux用户管理🔥Linux系统目录结构文件系统组织结构⭐ /lib系统开机所需要最基本的动态链接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。⭐ /lost+found一般情况下是空的,当系统非法关机后,这里就存放了一些文件。⭐ /etc所有系统管理所需要的配置文件和子目录my.conf⭐ /usr用户的很多应用程序和文件都放在这个目录下。⭐ /bin是Binary的缩写,这个目录存放着经常使用的命令⭐ /sbin(usr/sbin、/usr/local/sbin)sbin就是peruse

  10. ruby-on-rails - RSpec 的未定义方法 `its'(Hartl 的 Ruby on Rails 教程) - 2

    我在MichaelHartl的RoR教程第8章中遇到了问题。测试失败,因为RSpec的“它的”方法是“未定义的”。你遇到过类似的事情吗?可能是什么原因?我已经检查了一切,与书中的一样......这是我来自user_spec.rb的测试代码:describeUserdobefore{@user=User.new(name:"ExampleUser",email:"user@example.com",password:"foobar",password_confirmation:"foobar")}subject{@user}describe"remembertoken"dobefore{

随机推荐