在自动调整大小的标签中的单独行上显示Swift字符串数组

时间:2015-09-15 09:17:04

标签: xcode swift fmdb

我有一个通过FMDB SQLite结果填充的Swift字符串数组。阵列将OK打印到控制台窗口。我现在希望将数组中的字符串显示在自动调整大小标签(tests_label)中的不同行上,而不是打印到控制台。

只比XCode新手略少,所以感谢您的耐心等待!

if (view.tag > 0) { ... }

2 个答案:

答案 0 :(得分:3)

您可以创建一个由换行符分隔的字符串,如下所示:

let string = array.joinWithSeparator("\u{0085}")

或者在Swift 4中:

let string = array.joined(separator: "\u{0085}")

然后将其分配给标签。对于UILabel,您可能应将numberOfLines设置为零,并使用sizeToFit()或更复杂的方式调整其大小。

答案 1 :(得分:0)

我最终使用了TextView小部件......非常适合可分解的列表:

import UIKit

class ViewController: UIViewController {


    @IBOutlet weak var tests_scroller: UITextView!

    var databasePath = NSString()

    override func viewDidLoad() {
        super.viewDidLoad()

        let filemgr = NSFileManager.defaultManager()

        let dirPaths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)

        let docsDir = dirPaths[0] as! String

        databasePath = docsDir.stringByAppendingPathComponent("vmd_db.db")

        let myDatabase = FMDatabase(path: databasePath as String)

        if myDatabase.open(){

            var arrayData:[String] = []

            let query_lab_test = "SELECT lab_test FROM lab_test ORDER BY lab_test ASC"

            let results_lab_test:FMResultSet? = myDatabase.executeQuery(query_lab_test, withArgumentsInArray: nil)

            while results_lab_test?.next() == true {

                if let resultString = results_lab_test?.stringForColumn("lab_test"){

                arrayData.append(resultString)

            }
        }
            var multiLineString = join("\n", arrayData)
            tests_scroller.text = multiLineString
            myDatabase.close()
    }
    }


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