gpt4 book ai didi

ios - uicollectionview 继续详细查看 viewcontroller swift

转载 作者:行者123 更新时间:2023-11-28 13:19:18 25 4
gpt4 key购买 nike

//
// ViewController.swift
// Fashun
//
// Created by Alex Macleod on 20/10/14.
// Copyright (c) 2014 Alex Macleod. All rights reserved.
//

import UIKit

class ViewController: UIViewController, UICollectionViewDelegateFlowLayout, UICollectionViewDataSource {

var collectionView: UICollectionView?

var instanceOfCustomObject: CustomObject = CustomObject()
var accessToken: NSString! = "1570900151.c2711e8.75915e1949da40f395bf22e17101b43d"
//var userDefaults: NSUserDefaults!
let colorWheel = ColorWheel()
var photoCount: Int! = 0
let photos = NSMutableArray()

class PhotoAndData {
var img: UIImage = UIImage()
var date: Int = 0
var likes: Int = 0
var userLikePct: Float = 0
init(){
}
}

override func viewDidLoad() {

super.viewDidLoad()

// userDefaults = NSUserDefaults.standardUserDefaults()
// self.accessToken = userDefaults!.objectForKey("accessToken") as NSString
// println(self.accessToken)

// instanceOfCustomObject.someProperty = "Hello World"
// var accessToken : NSString? = NSString(instanceOfCustomObject.accessToken)
// println(accessToken)
// println("viewDidLoad")
// instanceOfCustomObject.simpleAuth()
instanceOfCustomObject.authorize()

// Do any additional setup after loading the view, typically from a nib.
let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout()
// layout.sectionInset = UIEdgeInsets(top: 20, left: 0, bottom: 0, right: 0)
layout.itemSize = CGSize(width: 124, height: 124)
layout.minimumInteritemSpacing = 1.0
layout.minimumLineSpacing = 1.0
collectionView = UICollectionView(frame: self.view.frame, collectionViewLayout: layout)
collectionView!.dataSource = self
collectionView!.delegate = self
collectionView!.registerClass(Cell.self, forCellWithReuseIdentifier: "Cell")
collectionView!.backgroundColor = UIColor.whiteColor()
self.view.addSubview(collectionView!)


getData()
// imageCount()

}

func getData() -> Void {
////
let tuulavintageUrl = NSURL(string:"https://api.instagram.com/v1/users/7522782/media/recent/?access_token=\(self.accessToken)")
let wendyslookbookUrl = NSURL(string:"https://api.instagram.com/v1/users/14454619/media/recent/?access_token=\(self.accessToken)")
//
// let sharedSession = NSURLSession.sharedSession()
// let downloadTask: NSURLSessionDownloadTask = sharedSession.downloadTaskWithURL(baseUrl!, completionHandler: { (location: NSURL!, response: NSURLResponse!, error: NSError!) -> Void in

// var urlContents = NSString.stringWithContentsOfURL(location, encoding: NSUTF8StringEncoding, error: nil)
// println(urlContents)

let tuulavintageData = NSData(contentsOfURL: tuulavintageUrl!)
let wendyslookbookData = NSData(contentsOfURL: wendyslookbookUrl!)

if (tuulavintageData != nil) & (wendyslookbookData != nil) {

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), {

let tuulavintageDictionary: NSDictionary = NSJSONSerialization.JSONObjectWithData(tuulavintageData!, options: nil, error: nil) as NSDictionary
var tuulavintageImageResponse = tuulavintageDictionary.valueForKeyPath("data.images.standard_resolution.url") as NSArray
var tuulavintageTimeResponse = tuulavintageDictionary.valueForKeyPath("data.created_time") as NSArray
var tuulavintageLikeResponse = tuulavintageDictionary.valueForKeyPath("data.likes.count") as NSArray
// println(tuulavintageTimeResponse)
self.addToPhotoArray(tuulavintageImageResponse, times: tuulavintageTimeResponse, likes: tuulavintageLikeResponse)

let wendyslookbookDictionary: NSDictionary = NSJSONSerialization.JSONObjectWithData(wendyslookbookData!, options: nil, error: nil) as NSDictionary
var wendyslookbookImageResponse = wendyslookbookDictionary.valueForKeyPath("data.images.standard_resolution.url") as NSArray
var wendyslookbookTimeResponse = wendyslookbookDictionary.valueForKeyPath("data.created_time") as NSArray
var wendyslookbookLikeResponse = wendyslookbookDictionary.valueForKeyPath("data.likes.count") as NSArray
// println(wendyslookbookTimeResponse)
self.addToPhotoArray(wendyslookbookImageResponse, times:wendyslookbookTimeResponse, likes:wendyslookbookLikeResponse)

self.photos.sortUsingComparator({ (a, b) -> NSComparisonResult in
let x = a as PhotoAndData
let y = b as PhotoAndData
if x.userLikePct < y.userLikePct {
return NSComparisonResult.OrderedDescending
}
return NSComparisonResult.OrderedAscending
})
//
dispatch_async(dispatch_get_main_queue(), { () -> Void in

self.photoCount = tuulavintageImageResponse.count + wendyslookbookImageResponse.count as Int

self.collectionView?.reloadData()

})
})

} else {

let networkIssueController = UIAlertController(title: "Error", message: "Something went wrong get a better phone you pleb!", preferredStyle: .ActionSheet)
let okButton = UIAlertAction(title: "OK", style: .Default, handler: nil)
networkIssueController.addAction(okButton)
let cancelButton = UIAlertAction(title: "Cancel", style: .Cancel, handler: nil)
networkIssueController.addAction(cancelButton)

self.presentViewController(networkIssueController, animated: true, completion: nil)

dispatch_async(dispatch_get_main_queue(), { () -> Void in
//Stop refresh animation

})
}
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return photoCount
}

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as Cell
// println(photos)
// cell.textLabel.text = "Text"
var indexToUse = indexPath.row
if indexPath.row >= photos.count {
indexToUse = photos.count - 1
}
let data = photos.objectAtIndex(indexToUse) as PhotoAndData
cell.imageView.image = data.img as UIImage
// cell.photo = self.photos[indexPath.row] as? NSDictionary
// cell.imageView.backgroundColor = colorWheel.randomColor()

return cell
}

我正在调用 Instagrams API,解析一些图像,然后将它们放入我的 Collection View 中,这是一堆正方形,就像 instagrams 应用程序一样。当我以编程方式点击我的 Collection View 单元之一时,如何继续到新的“详细 View Controller ”?

最佳答案

您需要将 UICollecitonViewDelegate(或类似的名称)添加到该 ViewController 并定义此方法:

//MARK: - UICollectionViewDelegate

func collectionView(collection: UICollectionView, selectedItemIndex: NSIndexPath)
{
//As sender send any data you need from the current Selected CollectionView
self.performSegueWithIdentifier("identifier", sender: self)
}

现在让它通过或获取 SegueController 并将数据设置到您需要的新 Controller 。

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
segue.desntinationViewController as MySegueViewController//(Your Segue View Controller)
// pass data to next view


}

PS:由于我不在我的 Mac 中,方法名称可能存在一些语法错误,请使用编辑器或文本完成器帮助您确定正确的名称。

但这就是调用 Segue Controller 所需的全部内容。还要记住在 Storyboard 文件中设置 Segue 标识符名称,否则它将无法正常工作。

关于ios - uicollectionview 继续详细查看 viewcontroller swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27173715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com