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

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

新規登録して質問してみよう
ただいま回答率
85.48%
ニフティクラウドmobile backend

ニフティクラウドmobile backend (mBaaS)はニフティが提供するBaasサービスです。プッシュ通知、データストア、ファイルストア、会員管理・認証機能などのバックエンド機能をクラウドから提供しています。 Andoird/iOS/JavaScript/Unityと各種SDKに対応しています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

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

Swift

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

SNS

SNS(ソーシャル・ネットワーキング・サービス)は、 人と人とのつながりを促進したり、サポートしたりすることが可能なコミュニティ型のWebサービスです。

Q&A

解決済

1回答

1475閲覧

画像を絞り込む際に完全一致ではなく,含むもので表示したい

aaaok

総合スコア4

ニフティクラウドmobile backend

ニフティクラウドmobile backend (mBaaS)はニフティが提供するBaasサービスです。プッシュ通知、データストア、ファイルストア、会員管理・認証機能などのバックエンド機能をクラウドから提供しています。 Andoird/iOS/JavaScript/Unityと各種SDKに対応しています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

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

Swift

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

SNS

SNS(ソーシャル・ネットワーキング・サービス)は、 人と人とのつながりを促進したり、サポートしたりすることが可能なコミュニティ型のWebサービスです。

1グッド

1クリップ

投稿2020/03/14 03:23

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
swift でSNSアプリを作成しております.
クラウドはニフティクラウドをつかっております.

画像を絞り込む際に完全一致ではなく,含むもので表示したいです.

発生している問題・エラーメッセージ

画像を絞り込む際に完全一致ではなく,含むもので表示したいです.

###現在の状況
ビルド,エラーともになく動いているのですが,表示に不満があります.

該当のソースコード

swift5

1class SearchViewController: UIViewController ,UISearchBarDelegate,UICollectionViewDataSource,UICollectionViewDelegate{ 2 3 var posts = [Post]() 4 var searchBar: UISearchBar! 5 var searchResults:[String] = [] 6 7 @IBOutlet weak var searchedPostCollectionView: UICollectionView! 8 9 override func viewDidLoad() { 10 super.viewDidLoad() 11 12 setSearchBar() 13 14 searchedPostCollectionView.dataSource = self 15 searchedPostCollectionView.delegate = self 16 17 // レイアウトを調整 18 let layout = UICollectionViewFlowLayout() 19 layout.itemSize = CGSize(width: 120, height: 120) 20 searchedPostCollectionView.collectionViewLayout = layout 21 // 1行あたりのアイテム数 22 let _: CGFloat = 3 23 // レイアウト設定 24 layout.minimumInteritemSpacing = 0 25 searchedPostCollectionView.collectionViewLayout = layout 26 27 searchFromTimeline(searchText: nil) 28 } 29 30 func setSearchBar() { 31 // NavigationBarにSearchBarをセット 32 if let navigationBarFrame = self.navigationController?.navigationBar.bounds { 33 let searchBar: UISearchBar = UISearchBar(frame: navigationBarFrame) 34 searchBar.delegate = self 35 searchBar.placeholder = "興味のあるものを調べてみよう!" 36 searchBar.autocapitalizationType = UITextAutocapitalizationType.none 37 navigationItem.titleView = searchBar 38 navigationItem.titleView?.frame = searchBar.frame 39 self.searchBar = searchBar 40 } 41 } 42 43 func searchBarShouldBeginEditing(_ searchBar: UISearchBar) -> Bool { 44 searchBar.setShowsCancelButton(true, animated: true) 45 return true 46 } 47 48 func searchBarCancelButtonClicked(_ searchBar: UISearchBar) { 49 searchFromTimeline(searchText: nil) 50 searchBar.showsCancelButton = false 51 self.view.endEditing(true) 52 self.searchedPostCollectionView.reloadData() 53 setSearchBar() 54 } 55 56 func searchBarSearchButtonClicked(_ searchBar: UISearchBar) { 57 searchFromTimeline(searchText: searchBar.text) 58 } 59 60 61 func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 62 return posts.count 63 } 64 65 func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 66 let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) 67 68 let searchImageView = cell.viewWithTag(1) as! UIImageView 69 let searchImagePath = posts[indexPath.row].imageUrl 70 searchImageView.kf.setImage(with: URL(string: searchImagePath)) 71 72 return cell 73 } 74 75 76 77 func searchFromTimeline(searchText: String?) { 78 let query = NCMBQuery(className: "Post") 79 query?.includeKey("user") 80 81 // 降順 82 query?.order(byDescending: "createDate") 83 84 *******問題箇所****** 85 if searchText != nil{ 86 let text = searchText 87 query?.whereKey("text", equalTo: text) 88 } 89 90 query?.findObjectsInBackground({ (result, error) in 91 if error != nil { 92 SVProgressHUD.showError(withStatus: error!.localizedDescription) 93 } else { 94 self.posts = [Post]() 95 96 for postObject in result as! [NCMBObject] { 97 // ユーザー情報をUserクラスにセット 98 let user = postObject.object(forKey: "user") as! NCMBUser 99 let userModel = User(objectId: user.objectId, userName: user.userName) 100 userModel.displayName = user.object(forKey: "displayName") as? String 101 102 // 投稿の情報を取得 103 let imageUrl = postObject.object(forKey: "imageUrl") as! String 104 let text = postObject.object(forKey: "text") as! String 105 106 // 2つのデータ(投稿情報と誰が投稿したか?)を合わせてPostクラスにセット 107 let post = Post(objectId: postObject.objectId, user: userModel, imageUrl: imageUrl, text: text, createDate: postObject.createDate) 108 109 // 配列に加える 110 self.posts.append(post) 111 } 112 self.searchedPostCollectionView.reloadData() 113 114 } 115 }) 116 } 117 118 119} 120

よろしくお願いいたします.

s.k👍を押しています

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

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

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

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

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

aaaok

2020/03/15 02:09

回答ありがとうございます. 具体的にどのように書けば良いか教えていただけないでしょうか?
aaaok

2020/03/26 07:35

iosがobject-Cの内容となっているため理解できなかったです... よろしくお願い致します.
aaaok

2020/03/26 11:12

ありがとうございます。 hoshi様に教えていただいたやり方でできました。
guest

回答1

0

自己解決

https://github.com/NIFCLOUD-mbaas/UserCommunity/issues/886
この方法でいけました
hoshi-takanori様ありがとうございました!!

投稿2020/03/27 11:13

aaaok

総合スコア4

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問