質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
ソート

複数のデータを、順序性に従って並べ替えること。 データ処理を行う際に頻繁に用いられ、多くのアルゴリズムが存在します。速度、容量、複雑さなどに違いがあり、高速性に特化したものにクイックソートがあります。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

1回答

3722閲覧

[Swift]配列に追加した複数の日時データをtableviewcellに昇順で表示させる方法

niship

総合スコア37

ソート

複数のデータを、順序性に従って並べ替えること。 データ処理を行う際に頻繁に用いられ、多くのアルゴリズムが存在します。速度、容量、複雑さなどに違いがあり、高速性に特化したものにクイックソートがあります。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

1クリップ

投稿2017/05/20 00:21

編集2022/01/12 10:55

###前提・実現したいこと
スケジュールアプリを作成しています。
ユーザーが指定した「タイトル」「開始時刻」「終了時刻」をそれぞれ配列に追加し、
それぞれのデータをセルに表示させたい(開始時刻の昇順で)と思っております。
開始時刻を昇順で表示させるところで躓いております。
現在はとりあえずindexPath.rowで登録した順に表示するコードを書いています。
下記にcellForRowAtのソースコードを記します。

Swift ここにご自身が実行したソースコードを書いてください ``` func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! TableViewCell func dateString(date: NSDate) -> String { let dateFormatter = DateFormatter() dateFormatter.calendar = NSCalendar(calendarIdentifier: NSCalendar.Identifier.gregorian)! as Calendar! dateFormatter.locale = NSLocale.system dateFormatter.timeZone = NSTimeZone.system dateFormatter.dateFormat = "H:mm" let dateString: String = dateFormatter.string(from: date as Date) return dateString } var strBox = dateString(date: dateArray1[indexPath.row] as NSDate) var strBox2 = dateString(date: dateArray2[indexPath.row] as NSDate) let strCount: Int = strBox.characters.count let strCount2: Int = strBox2.characters.count if strCount < 5 { timeLabelText1 = " " + dateString(date: dateArray1[indexPath.row] as NSDate) + " " } else { timeLabelText1 = dateString(date: dateArray1[indexPath.row] as NSDate) + " " } if strCount2 < 5 { timeLabelText2 = " " + dateString(date: dateArray2[indexPath.row] as NSDate) } else { timeLabelText2 = " " + dateString(date: dateArray2[indexPath.row] as NSDate) } let attrText = NSMutableAttributedString(string: timeLabelText1 + ">>>" + timeLabelText2) attrText.addAttribute(NSForegroundColorAttributeName, value: UIColor.red, range: NSMakeRange(7, 3)) attrText.addAttribute(NSForegroundColorAttributeName, value: UIColor.white, range: NSMakeRange(0, 5)) attrText.addAttribute(NSForegroundColorAttributeName, value: UIColor.white, range: NSMakeRange(12, 5)) cell.timeLabel?.attributedText = attrText cell.titleLabel?.text = " " + titleArray[indexPath.row]! // 枠のカラー cell.titleLabel.layer.borderColor = UIColor.darkGray.cgColor // 枠の幅 cell.titleLabel.layer.borderWidth = 1.0 // 枠を角丸にする場合 cell.titleLabel.layer.cornerRadius = 10.0 cell.titleLabel.layer.masksToBounds = true return cell } ###試したこと ###補足情報(言語/FW/ツール等のバージョンなど) より詳細な情報

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

日付の配列はこんな感じでソートできますよ

let dateArray = [Date(), Date().addingTimeInterval(60*60*24), Date().addingTimeInterval(-60*60*24)] let dateArray1 = dateArray.sorted(by: <) // 昇順 let dateArray2 = dateArray.sorted(by: >) // 降順

投稿2017/05/23 02:24

oden

総合スコア76

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問