私のXcodeプロジェクトでは、Snapchatの「Send To ...」画面(スクリーンショットを添付しました)のような表示をしたいと思います。私はすでにテーブルビューを作成してそれを設定し、複数の選択を許可しました。SnapchatのようなテーブルビューSend Feature(Multiple Selection and Swipeable Label)
1)多重選択:私が望むセルを選択できますが、検索バーをタップして入力を開始すると、前の選択はすべて消えます。私は、配列内のすべての名前を追加する必要があると仮定して、何らかの形で配列を通知するので、このユーザー名が配列に含まれているかどうかを確認してから、テーブルビューで選択します。しかし、私はそれをどうやって行うのか分かりません。 どうすればいいですか?
2)下のバー(写真では青)に送信:あなたが知っているかもしれませんが、あなたがにスナップを送信したいユーザーに押すと、その名前がでバーに追加されますSnapchatで、あなたが追加した名前を水平にスクロールすることができるので、あなたがバーをいっぱいにして、それをスワイプできるからです。私は配列に名前を付け加え、その配列のようなラベルに配列を表示できますが、ユーザーが水平にスクロールできるようにする方法はわかりません。 この同じ機能を実装するにはどうすればよいですか?
すべての質問にお気軽にお問い合わせください。あなたはそれらのすべてを行う必要はありません、私は彼らに答えが必要です。ここに私のコードは、これまでのところです:
class User {
var userID:String?
var userFullName:String?
var userUsername:String?
var userProfileImage:PFFile?
var isPrivate:Bool
init(userID : String, userFullName : String, userUserName : String, userProfileImage : PFFile, isPrivate : Bool) {
self.userID = userID
self.userFullName = userFullName
self.userUsername = userUserName
self.userProfileImage = userProfileImage
self.isPrivate = isPrivate
}
}
var userArray = [User]()
func loadFriends() {
//STEP 1: Find friends
let friendsQuery = PFQuery(className: "Friends") //choosing class
friendsQuery.whereKey("friendOne", equalTo: PFUser.current()?.objectId ?? String()) //finding friends
friendsQuery.limit = self.page //number of users intitally showing
friendsQuery.findObjectsInBackground (block: { (objects, error) -> Void in
if error == nil { //if no error
//clean up
self.friendsArray.removeAll(keepingCapacity: false)
//STEP 2: Find related objects depending on query setting
for object in objects! {
self.friendsArray.append(object.value(forKey: "friendTwo") as! String) //hold array info of friend
}
//STEP 3: Find friend info
let query = PFUser.query()
query?.whereKey("objectId", containedIn: self.friendsArray)
query?.addDescendingOrder("createdAt") //how to order users
query?.findObjectsInBackground(block: { (objects, error) -> Void in
if error == nil {
for object in objects! {
var user : User
let fullname = (object.value(forKey: "fullname") as! String)
let username = (object.object(forKey: "username") as! String)
let profilePhoto = (object.object(forKey: "profilePhoto") as! PFFile)
let objectID = (object.objectId!)
let isPrivate = (object.object(forKey: "isPrivate") as! Bool)
user = User(userID: objectID, userFullName: fullname, userUserName: username, userProfileImage: profilePhoto, isPrivate: isPrivate)
self.userArray.append(user)
}
self.tableView.reloadData()
} else {
print(error!)
}
})
} else {
print(error!)
}
})
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell") as! FriendCell
let user = userArray[indexPath.row]
//add user info to cells
cell.fullnameLabel.text = user.userFullName
cell.usernameLabel.text = user.userUsername
cell.objectID = user.userID!
cell.isPrivate = user.isPrivate
user.userProfileImage?.getDataInBackground (block: { (data, error) in
if error == nil {
cell.profilePhoto.image = UIImage(data: data!)
}
})
})
}
ユーザークラスを正確に使用するにはどうすればよいですか?私は初心者のコーダーであり、以前はこれを使用していませんでした。私はすでにur {class User ...}をコードに入力していますが、私が 'loadfriends()'関数に行ったときにクラスのどれにもオブジェクトを追加することはできません – fphelp
私が言ったように、アイデアから始める。それが私の答えを受け入れるべきであるよりもあなたに役立つなら、私はあなたをさらに助けることができます。 – Torongo
私はあなたの答えを受け入れ、あなたの助けをしたいと思います。 loadFriends()関数から受け取ったデータをどのように追加するのですか? – fphelp