2017-05-12 7 views
-1

私のコードは配列のエントリを取り、ラベルの逆にそれらを表示します。どのように基本的なuitableview形式で同じ逆の順序を維持することができます。私はこのコードを取って、同じ方法でテーブルビューに置くだけでいいです。テーブルビューセルの配列を逆順に印刷する方法(swift3)

import UIKit 

class ViewController: UIViewController { 

    var numbersWithCreationDates = [(Int,String)]() 

    @IBOutlet var entry: UILabel! 

    @IBOutlet var label: UITextField! 

    @IBOutlet var scrolView: UIScrollView! 

    @IBAction func enterScore(_ sender: Any) { 

     if let text = label.text { 
      if let number = Int(text){ 
       let date = Date().description 
       let numberAndDate = (number, date.substring(to: date.characters.index(of: "+")!)) 
       numbersWithCreationDates.insert(numberAndDate, at: 0) 
       entry.text = numbersWithCreationDates 
        .map { "\($0.0) | \($0.1)" } 
        .joined(separator:"\n\n") 
       UserDefaults.standard.set(entry.text, forKey: "numbersWithCreationDates") 
      } 
     } 


     else { 
      entry.text = "Please Enter Number" 

     } 
    } 
} 
extension Date { 
    static var formattedNow: String { 
     let now = Date() 
     let dateFormatter = DateFormatter() 
     dateFormatter.dateFormat = "MM/dd/yyyy HH:mm:ss" 
     dateFormatter.timeZone = TimeZone(identifier: "EST") 
     return dateFormatter.string(from: now) 
    } 
} 

enter image description here

+1

あなたの質問とあなたのコードはどちらも不整合な混乱です。 「それをテーブルビューに置くの?」どういう意味ですか?ボタンが押されたときのラベルテキストと、ボタンが押されたときの現在の日付の抜本的な部分文字列で構成される長い文字列を作成しているようです。今、あなたはテーブルビューに新しいセルを追加するために、それぞれのボタンを押しますか?あなたはテーブルビューとテーブルビューのデータソースを読み上げる必要があります。 –

+0

あなたの権利私は間違ったフレームワークでコードを作り始めました。私はそれを作り直さなければならない。 –

+0

'UITextField'にテキストを入力して' Button'を押すと、そのテキストと日付情報を 'struct'に入れ、' struct'を 'array'に追加する必要があります。次に 'array'を使って' UITableView'を設定します。あなたの 'UITableView'コードはどこですか? –

答えて

0

私はなぜあなたがやっているかわからない:

numbersWithCreationDates.insert(numberAndDate, at: 0) 

だけで実行します。

numbersWithCreationDates.append(numberAndDate) 

、その後、すべてのあなたのの配列を持つことになりますnumberAndDates

あなただけ numbersWithCreationDates.count

let data = numbersWithCreationDates[row]に基づいてcellForRowAtあなたは移入に持って、各セル/行のために、あなたは可能性がすなわちを行い、そのnumberOfRowsInSectionのためのあなたのtableView(あなたは1つのセクションを持っていると仮定)

ためのその後

たとえば

cell.title = data.somePropertyORSomeSortOfFunctionThatExtractsTheTitleForYou 
+0

おそらくOPは、新しいアイテムがアレイの最上部に挿入されることを望んでいます。そういうわけで、あいまいなのは、彼の質問の「ラベルの上に逆にそれらを印刷する」と解釈する方法です。 'insert(_:、at:)'配列呼び出しはそれを実現します。 –

+0

しかし、私はこのような本当に悪い質問に私たちが推測し、答えるべきではないと思う。それは誰にも利益をもたらすものではなく、さらに混乱を招く可能性が高い。より明確にOPを得るために良い。 –

関連する問題