Я пытаюсь создать любимую кнопку на CollectionViewCell для сохранения элементов в списке избранных. Когда я постучал по любимой кнопке значка, он успешно добавляет выбранный элемент ячейки в массив избранного списка, а также отображается в списке избранного. Когда я постучал по любимой кнопке, измените ее изображение в соответствии со значениями, которые уже сохранены или нет. Когда я пытаюсь сохранить список избранного массива в NSUserDefaults, он сохраняет и также показывает значения, когда я его извлекаю. Но когда я закрываю свое приложение из симулятора и снова запускаю его, он не показывает значения в массиве избранных списков, которые я сохранил в NSUserDefaults, а также хочу установить состояние изображения кнопки в соответствии с элементом, уже добавленным или нет.пытается создать любимую кнопку для добавления элементов в список избранных
Output Когда я постучал по любимому. И снова запустите после закрытия моего приложения. Может ли кто-нибудь сказать мне, как я могу это исправить. Или может кто-нибудь, пожалуйста, исправить это в моих project. Благодарности
import UIKit
var url : [NSString] = [
"https://www.youtube.com/watch?v=9h30Bx4Klxg",
"https://www.youtube.com/watch?v=ij_0p_6qTss",
"https://www.youtube.com/watch?v=AJtDXIazrMo",
"https://www.youtube.com/watch?v=H202k7KfZL0",
"https://www.youtube.com/watch?v=CGyEd0aKWZE",
"https://www.youtube.com/watch?v=AtKZKl7Bgu0",
"https://www.youtube.com/watch?v=4SYlLi5djz0"]
var image : [NSString] = ["1.jpg", "2.jpg", "3.jpg", "4.jpg", "5.jpg", "6.jpg", "7.jpg"]
class LiveCollectionView: UIViewController, UICollectionViewDataSource,UIWebViewDelegate {
@IBOutlet weak var collectionView: UICollectionView!
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidAppear(animated: Bool) {
let value = UIInterfaceOrientation.Portrait.rawValue
UIDevice.currentDevice().setValue(value, forKey: "orientation")
}
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return url.count
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell
{
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as! LiveCollectionViewCell
cell.imageView.image = UIImage(named: image[indexPath.row] as String)
cell.playBt.addTarget(self, action: Selector("webView:"), forControlEvents: UIControlEvents.TouchUpInside)
cell.playBt.tag = indexPath.row
cell.heartBt.tag = indexPath.row
return cell
}
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath){
}
}
import UIKit
class LiveCollectionViewCell: UICollectionViewCell{
var showPlayButton = true
var number = Int()
var secondNumber = Int()
@IBOutlet weak var playBt: UIButton!
@IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var heartBt: UIButton!
@IBAction func heartBt(sender: UIButton) {
var btn : NSInteger
btn = sender.tag as NSInteger
let uValues = url[btn]
let iValues = image[btn]
if showPlayButton == true{
u.append(url[btn])
i.append(image[btn])
self.heartBt.setImage(UIImage(named: "rheart"), forState: UIControlState.Normal)
showPlayButton = false
print("rHeart xxxxxxxxxxxxxxx")
}else{
for check in u {
number++
print(number)
if uValues == check{
print(u)
u.removeAtIndex(number-1)
number = 0
print("RemoVe at indext path")
print(u)
break
}
}
for check2 in i{
secondNumber++
print(secondNumber)
if iValues == check2{
print(i)
i.removeAtIndex(secondNumber-1)
secondNumber = 0
print("RemoVe at indext path")
print(i)
self.heartBt.setImage(UIImage(named: "wHeart"), forState: UIControlState.Normal)
showPlayButton = true
print("wHeart ........")
break
}
}
}
}
}
import UIKit
var u : [NSString] = []
var i : [NSString] = []
class FavoriteTvViewController: UIViewController , UICollectionViewDelegate{
var uV : NSArray = []
var iV : NSArray = []
@IBOutlet weak var collectionView: UICollectionView!
let reuseIdentifier = "cell"
override func viewDidLoad(){
}
override func viewWillAppear(animated: Bool) {
collectionView.reloadData()
NSUserDefaults.standardUserDefaults().setObject(u, forKey: "u")
NSUserDefaults.standardUserDefaults().setObject(i, forKey: "i")
NSUserDefaults.standardUserDefaults().synchronize()
uV = NSUserDefaults.standardUserDefaults().arrayForKey("u") as! NSArray
iV = NSUserDefaults.standardUserDefaults().arrayForKey("i") as! NSArray
print("uV values.. \(uV)")
print("iV values.. \(iV)")
}
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
{
return uV.count
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> FavoriteTvCollectionViewCell
{
let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as! FavoriteTvCollectionViewCell
cell.imageView.image = UIImage(named: iV[indexPath.row] as! String)
return cell
}
}
import UIKit
class FavoriteTvCollectionViewCell: UICollectionViewCell {
@IBOutlet weak var imageView: UIImageView!
}
Пожалуйста, загрузите изображения на SO, а не делиться на Google диске (ссылки могут быть сломаны несколько месяцев назад, но люди будут видеть вопрос, если вы не удалите его) –
Мой профиль репутации менее 10, как я могу загрузить на SO? – AzKa