Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import UIKit
- class PhotoCell: UITableViewCell {
- var IdOfObject:String = ""
- var senderView:AnyObject!
- var cellData:FeedData!
- var cellTag:Int!
- var fromView:String!
- var thisImage:UIImage!
- override func awakeFromNib() {
- super.awakeFromNib()
- }
- override func setSelected(selected: Bool, animated: Bool) {
- super.setSelected(selected, animated: animated)
- // Configure the view for the selected state
- }
- func setTableUp(tImage:UIImage, tTag:Int, commentCount: Int, sumLikeCount:Int, identification:String, sender:AnyObject, feed:FeedData, from:String){
- thisImage = tImage
- fromView = from
- cellTag = tTag
- cellData = feed
- senderView = sender
- IdOfObject = identification
- var screenWidth = Coz.GlobalVariables.ScreenWidth
- backgroundColor = Coz.GlobalVariables.ThemeSecondColor
- var rect = CGRectMake(0, 0, screenWidth, screenWidth + 38)
- frame = rect
- var imageSizes:CGFloat = 30
- var imageTintColors:UIColor = Coz.GlobalVariables.ThemeColor
- var clickedId = IdOfObject
- var idForUserDefaults = "p" + clickedId
- var userDefaults = NSUserDefaults.standardUserDefaults()
- var defaultValue: AnyObject? = userDefaults.valueForKey(idForUserDefaults)
- //Control Bar Under The Picture
- var controlBar:UIView = UIView(frame: CGRectMake(0, screenWidth, screenWidth, 38))
- //Like Up Button
- let upButton = UIButton.buttonWithType(UIButtonType.System) as UIButton
- upButton.tag = tTag
- upButton.frame = CGRectMake(10, 5, imageSizes, imageSizes)
- upButton.tintColor = imageTintColors
- upButton.setImage(UIImage(named: "up.png"), forState: UIControlState.Normal)
- upButton.addTarget(self, action: "upButtonAction:", forControlEvents: UIControlEvents.TouchUpInside)
- if defaultValue?.integerValue == 1{
- upButton.tintColor = UIColor.blueColor()
- }
- controlBar.addSubview(upButton)
- //Like Count Label
- let likeCount = UILabel(frame: CGRectMake(40, 5, imageSizes, imageSizes))
- likeCount.textColor = imageTintColors
- likeCount.text = String(sumLikeCount)
- likeCount.font = UIFont(name: Coz.GlobalVariables.ThemeFontName, size: 17)
- likeCount.textAlignment = NSTextAlignment.Center
- controlBar.addSubview(likeCount)
- //Like Down Button
- let downButton = UIButton.buttonWithType(UIButtonType.System) as UIButton
- downButton.tag = tTag
- downButton.frame = CGRectMake(70, 5, imageSizes, imageSizes)
- downButton.tintColor = imageTintColors
- downButton.setImage(UIImage(named: "down.png"), forState: UIControlState.Normal)
- downButton.addTarget(self, action: "downButtonAction:", forControlEvents: UIControlEvents.TouchUpInside)
- if defaultValue?.integerValue == -1{
- downButton.tintColor = UIColor.blueColor()
- }
- controlBar.addSubview(downButton)
- //Comment Button
- let commentButton = UIButton.buttonWithType(UIButtonType.System) as UIButton
- commentButton.tag = tTag
- commentButton.frame = CGRectMake(screenWidth - screenWidth/5 - 25 - imageSizes, 5, imageSizes, imageSizes)
- commentButton.tintColor = imageTintColors
- commentButton.setImage(UIImage(named: "comment.png"), forState: UIControlState.Normal)
- commentButton.addTarget(self, action: "commentButtonAction:", forControlEvents: UIControlEvents.TouchUpInside)
- controlBar.addSubview(commentButton)
- //Comment Count Label
- let commentCountLabel = UILabel(frame: CGRectMake(screenWidth - screenWidth/5 - 25 - imageSizes, 2.5, imageSizes, imageSizes))
- commentCountLabel.textColor = imageTintColors
- commentCountLabel.text = String(commentCount)
- commentCountLabel.textAlignment = NSTextAlignment.Center
- commentCountLabel.font = UIFont(name: Coz.GlobalVariables.ThemeFontName, size: 17)
- controlBar.addSubview(commentCountLabel)
- //Share Button
- let shareButton = UIButton.buttonWithType(UIButtonType.System) as UIButton
- shareButton.tag = tTag
- shareButton.frame = CGRectMake(screenWidth - screenWidth/5 - 10, 4, screenWidth/5, imageSizes)
- shareButton.tintColor = imageTintColors
- shareButton.backgroundColor = Coz.GlobalVariables.ThemeColor
- shareButton.setTitle(NSLocalizedString("shareButton", comment: ""), forState: UIControlState.Normal)
- shareButton.setTitleColor(backgroundColor, forState: UIControlState.Normal)
- shareButton.titleLabel?.font = UIFont(name: Coz.GlobalVariables.ThemeFontName, size: 17)
- shareButton.addTarget(self, action: "shareButtonAction:", forControlEvents: UIControlEvents.TouchUpInside)
- shareButton.layer.cornerRadius = 5
- shareButton.clipsToBounds = true
- controlBar.addSubview(shareButton)
- addSubview(controlBar)
- }
- func commentButtonAction(sender:UIButton!){
- if fromView == "FeedVC"{
- var send = senderView as FeedVC
- send.imgButton(sender)
- }else if fromView == "CommentsVC"{
- var send = senderView as CommentsVC
- send.imgButton(sender)
- }
- }
- func upButtonAction(sender:UIButton!){
- CanVote(1)
- }
- func downButtonAction(sender:UIButton!){
- CanVote(-1)
- }
- func shareButtonAction(sender:UIButton!){
- let someText:String = NSLocalizedString("shareText", comment: "")
- let google:NSURL = NSURL(string:"http://google.com")!
- //http://www.rockhoppertech.com/blog/uiactivitycontroller-in-swift/
- let activityViewController = UIActivityViewController(activityItems: [someText, google, thisImage], applicationActivities: nil)
- if respondsToSelector("popoverPresentationController") {
- self.senderView.presentViewController(activityViewController, animated: true, completion: nil)
- activityViewController.popoverPresentationController?.sourceView = sender
- }else{
- senderView.presentViewController(activityViewController, animated: true, completion: nil)
- }
- increaseVote("ShareCount")
- }
- func increaseVote(keyToIncrement:String){
- var query = PFQuery(className:"table")
- query.getObjectInBackgroundWithId(IdOfObject) {
- (votingObject: PFObject!, error: NSError!) -> Void in
- if error != nil {
- NSLog("%@", error)
- } else {
- votingObject.incrementKey(keyToIncrement)
- votingObject.saveInBackgroundWithBlock(nil)
- }
- //self.senderView.reloadData()
- }
- }
- func decreaseVote(keyToIncrement:String){
- var query = PFQuery(className:"table")
- query.getObjectInBackgroundWithId(IdOfObject) {
- (votingObject: PFObject!, error: NSError!) -> Void in
- if error != nil {
- NSLog("%@", error)
- } else {
- votingObject.incrementKey(keyToIncrement, byAmount: -1)
- votingObject.saveInBackgroundWithBlock(nil)
- }
- //self.senderView.reloadData()
- }
- }
- func CanVote(arrow:Int)->Bool{
- var clickedId = IdOfObject
- var idForUserDefaults = "p" + clickedId
- var voteCount = 0
- var userDefaults = NSUserDefaults.standardUserDefaults()
- var defaultValue: AnyObject? = userDefaults.valueForKey(idForUserDefaults)
- if defaultValue == nil || defaultValue?.integerValue == 0{
- if arrow == 1{
- userDefaults.setValue(1, forKey: idForUserDefaults)
- increaseVote("LikeCount")
- voteCount++
- }else if arrow == -1{
- userDefaults.setValue(-1, forKey: idForUserDefaults)
- increaseVote("DislikeCount")
- voteCount--
- }
- }else if defaultValue?.integerValue == 1{
- if arrow == 1{
- userDefaults.setValue(0, forKey: idForUserDefaults)
- decreaseVote("LikeCount")
- voteCount--
- }else if arrow == -1{
- userDefaults.setValue(-1, forKey: idForUserDefaults)
- decreaseVote("LikeCount")
- increaseVote("DislikeCount")
- voteCount--
- voteCount--
- }
- }else if defaultValue?.integerValue == -1{
- if arrow == 1{
- userDefaults.setValue(1, forKey: idForUserDefaults)
- decreaseVote("DislikeCount")
- increaseVote("LikeCount")
- voteCount++
- voteCount++
- }else if arrow == -1{
- userDefaults.setValue(0, forKey: idForUserDefaults)
- decreaseVote("DislikeCount")
- voteCount++
- }
- }
- userDefaults.synchronize()
- cellData.likeCount += voteCount
- if fromView == "FeedVC"{
- var send = senderView as FeedVC
- send.updateCell(cellTag)
- }else if fromView == "CommentsVC"{
- var send = senderView as CommentsVC
- send.tableView.reloadData()
- }
- return true
- }
- /*
- override func setSelected(selected: Bool, animated: Bool) {
- super.setSelected(selected, animated: animated)
- // Configure the view for the selected state
- }
- */
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement