Advertisement
Guest User

PhotoCell

a guest
Dec 24th, 2014
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import UIKit
  2.  
  3. class PhotoCell: UITableViewCell {
  4.    
  5.     var IdOfObject:String = ""
  6.     var senderView:AnyObject!
  7.     var cellData:FeedData!
  8.     var cellTag:Int!
  9.     var fromView:String!
  10.     var thisImage:UIImage!
  11.    
  12.     override func awakeFromNib() {
  13.         super.awakeFromNib()
  14.     }
  15.    
  16.     override func setSelected(selected: Bool, animated: Bool) {
  17.         super.setSelected(selected, animated: animated)
  18.         // Configure the view for the selected state
  19.     }
  20.    
  21.     func setTableUp(tImage:UIImage, tTag:Int, commentCount: Int, sumLikeCount:Int, identification:String, sender:AnyObject, feed:FeedData, from:String){
  22.         thisImage = tImage
  23.         fromView = from
  24.         cellTag = tTag
  25.         cellData = feed
  26.         senderView = sender
  27.         IdOfObject = identification
  28.         var screenWidth = Coz.GlobalVariables.ScreenWidth
  29.         backgroundColor = Coz.GlobalVariables.ThemeSecondColor
  30.        
  31.         var rect = CGRectMake(0, 0, screenWidth, screenWidth + 38)
  32.         frame = rect
  33.         var imageSizes:CGFloat = 30
  34.         var imageTintColors:UIColor = Coz.GlobalVariables.ThemeColor
  35.        
  36.         var clickedId = IdOfObject
  37.         var idForUserDefaults = "p" + clickedId
  38.         var userDefaults = NSUserDefaults.standardUserDefaults()
  39.         var defaultValue: AnyObject? = userDefaults.valueForKey(idForUserDefaults)
  40.  
  41.         //Control Bar Under The Picture
  42.         var controlBar:UIView = UIView(frame: CGRectMake(0, screenWidth, screenWidth, 38))
  43.  
  44.         //Like Up Button
  45.         let upButton = UIButton.buttonWithType(UIButtonType.System) as UIButton
  46.         upButton.tag = tTag
  47.         upButton.frame = CGRectMake(10, 5, imageSizes, imageSizes)
  48.         upButton.tintColor = imageTintColors
  49.         upButton.setImage(UIImage(named: "up.png"), forState: UIControlState.Normal)
  50.         upButton.addTarget(self, action: "upButtonAction:", forControlEvents: UIControlEvents.TouchUpInside)
  51.         if defaultValue?.integerValue == 1{
  52.             upButton.tintColor = UIColor.blueColor()
  53.         }
  54.         controlBar.addSubview(upButton)
  55.        
  56.         //Like Count Label
  57.         let likeCount = UILabel(frame: CGRectMake(40, 5, imageSizes, imageSizes))
  58.         likeCount.textColor = imageTintColors
  59.         likeCount.text = String(sumLikeCount)
  60.         likeCount.font = UIFont(name: Coz.GlobalVariables.ThemeFontName, size: 17)
  61.         likeCount.textAlignment = NSTextAlignment.Center
  62.         controlBar.addSubview(likeCount)
  63.    
  64.         //Like Down Button
  65.         let downButton = UIButton.buttonWithType(UIButtonType.System) as UIButton
  66.         downButton.tag = tTag
  67.         downButton.frame = CGRectMake(70, 5, imageSizes, imageSizes)
  68.         downButton.tintColor = imageTintColors
  69.         downButton.setImage(UIImage(named: "down.png"), forState: UIControlState.Normal)
  70.         downButton.addTarget(self, action: "downButtonAction:", forControlEvents: UIControlEvents.TouchUpInside)
  71.         if defaultValue?.integerValue == -1{
  72.             downButton.tintColor = UIColor.blueColor()
  73.         }
  74.         controlBar.addSubview(downButton)
  75.  
  76.         //Comment Button
  77.         let commentButton = UIButton.buttonWithType(UIButtonType.System) as UIButton
  78.         commentButton.tag = tTag
  79.         commentButton.frame = CGRectMake(screenWidth - screenWidth/5 - 25 - imageSizes, 5, imageSizes, imageSizes)
  80.         commentButton.tintColor = imageTintColors
  81.         commentButton.setImage(UIImage(named: "comment.png"), forState: UIControlState.Normal)
  82.         commentButton.addTarget(self, action: "commentButtonAction:", forControlEvents: UIControlEvents.TouchUpInside)
  83.         controlBar.addSubview(commentButton)
  84.        
  85.         //Comment Count Label
  86.         let commentCountLabel = UILabel(frame: CGRectMake(screenWidth - screenWidth/5 - 25 - imageSizes, 2.5, imageSizes, imageSizes))
  87.         commentCountLabel.textColor = imageTintColors
  88.         commentCountLabel.text = String(commentCount)
  89.         commentCountLabel.textAlignment = NSTextAlignment.Center
  90.         commentCountLabel.font = UIFont(name: Coz.GlobalVariables.ThemeFontName, size: 17)
  91.         controlBar.addSubview(commentCountLabel)
  92.        
  93.         //Share Button
  94.         let shareButton = UIButton.buttonWithType(UIButtonType.System) as UIButton
  95.         shareButton.tag = tTag
  96.         shareButton.frame = CGRectMake(screenWidth - screenWidth/5 - 10, 4, screenWidth/5, imageSizes)
  97.         shareButton.tintColor = imageTintColors
  98.         shareButton.backgroundColor = Coz.GlobalVariables.ThemeColor
  99.         shareButton.setTitle(NSLocalizedString("shareButton", comment: ""), forState: UIControlState.Normal)
  100.         shareButton.setTitleColor(backgroundColor, forState: UIControlState.Normal)
  101.         shareButton.titleLabel?.font = UIFont(name: Coz.GlobalVariables.ThemeFontName, size: 17)
  102.         shareButton.addTarget(self, action: "shareButtonAction:", forControlEvents: UIControlEvents.TouchUpInside)
  103.         shareButton.layer.cornerRadius = 5
  104.         shareButton.clipsToBounds = true
  105.         controlBar.addSubview(shareButton)
  106.         addSubview(controlBar)
  107.     }
  108.  
  109.     func commentButtonAction(sender:UIButton!){      
  110.         if fromView == "FeedVC"{
  111.             var send = senderView as FeedVC
  112.             send.imgButton(sender)
  113.         }else if fromView == "CommentsVC"{
  114.             var send = senderView as CommentsVC
  115.             send.imgButton(sender)
  116.         }
  117.     }
  118.    
  119.     func upButtonAction(sender:UIButton!){
  120.         CanVote(1)
  121.     }
  122.    
  123.     func downButtonAction(sender:UIButton!){
  124.         CanVote(-1)
  125.     }
  126.  
  127.     func shareButtonAction(sender:UIButton!){
  128.        
  129.         let someText:String = NSLocalizedString("shareText", comment: "")
  130.         let google:NSURL = NSURL(string:"http://google.com")!
  131.        
  132.         //http://www.rockhoppertech.com/blog/uiactivitycontroller-in-swift/
  133.         let activityViewController = UIActivityViewController(activityItems: [someText, google, thisImage], applicationActivities: nil)
  134.  
  135.         if respondsToSelector("popoverPresentationController") {
  136.             self.senderView.presentViewController(activityViewController, animated: true, completion: nil)
  137.             activityViewController.popoverPresentationController?.sourceView = sender
  138.         }else{
  139.             senderView.presentViewController(activityViewController, animated: true, completion: nil)
  140.         }
  141.  
  142.         increaseVote("ShareCount")
  143.     }
  144.    
  145.     func increaseVote(keyToIncrement:String){
  146.         var query = PFQuery(className:"table")
  147.        
  148.         query.getObjectInBackgroundWithId(IdOfObject) {
  149.             (votingObject: PFObject!, error: NSError!) -> Void in
  150.            
  151.             if error != nil {
  152.                 NSLog("%@", error)
  153.             } else {
  154.                 votingObject.incrementKey(keyToIncrement)
  155.                 votingObject.saveInBackgroundWithBlock(nil)
  156.             }
  157.             //self.senderView.reloadData()
  158.         }
  159.     }
  160.  
  161.     func decreaseVote(keyToIncrement:String){
  162.         var query = PFQuery(className:"table")
  163.        
  164.         query.getObjectInBackgroundWithId(IdOfObject) {
  165.             (votingObject: PFObject!, error: NSError!) -> Void in
  166.            
  167.             if error != nil {
  168.                 NSLog("%@", error)
  169.             } else {
  170.                 votingObject.incrementKey(keyToIncrement, byAmount: -1)
  171.                 votingObject.saveInBackgroundWithBlock(nil)
  172.             }
  173.             //self.senderView.reloadData()
  174.         }
  175.     }
  176.  
  177.     func CanVote(arrow:Int)->Bool{
  178.         var clickedId = IdOfObject
  179.         var idForUserDefaults = "p" + clickedId
  180.         var voteCount = 0
  181.        
  182.         var userDefaults = NSUserDefaults.standardUserDefaults()
  183.         var defaultValue: AnyObject? = userDefaults.valueForKey(idForUserDefaults)
  184.        
  185.         if defaultValue == nil || defaultValue?.integerValue == 0{
  186.             if arrow == 1{
  187.                 userDefaults.setValue(1, forKey: idForUserDefaults)
  188.                 increaseVote("LikeCount")
  189.                 voteCount++
  190.             }else if arrow == -1{
  191.                 userDefaults.setValue(-1, forKey: idForUserDefaults)
  192.                 increaseVote("DislikeCount")
  193.                 voteCount--
  194.             }
  195.         }else if defaultValue?.integerValue == 1{
  196.             if arrow == 1{
  197.                 userDefaults.setValue(0, forKey: idForUserDefaults)
  198.                 decreaseVote("LikeCount")
  199.                 voteCount--
  200.             }else if arrow == -1{
  201.                 userDefaults.setValue(-1, forKey: idForUserDefaults)
  202.                 decreaseVote("LikeCount")
  203.                 increaseVote("DislikeCount")
  204.                 voteCount--
  205.                 voteCount--
  206.             }
  207.         }else if defaultValue?.integerValue == -1{
  208.             if arrow == 1{
  209.                 userDefaults.setValue(1, forKey: idForUserDefaults)
  210.                 decreaseVote("DislikeCount")
  211.                 increaseVote("LikeCount")
  212.                 voteCount++
  213.                 voteCount++
  214.             }else if arrow == -1{
  215.                 userDefaults.setValue(0, forKey: idForUserDefaults)
  216.                 decreaseVote("DislikeCount")
  217.                 voteCount++
  218.             }
  219.         }
  220.         userDefaults.synchronize()
  221.        
  222.         cellData.likeCount += voteCount
  223.        
  224.         if fromView == "FeedVC"{
  225.             var send = senderView as FeedVC
  226.             send.updateCell(cellTag)
  227.         }else if fromView == "CommentsVC"{
  228.             var send = senderView as CommentsVC
  229.             send.tableView.reloadData()
  230.         }
  231.        
  232.         return true
  233.     }
  234.  
  235.     /*
  236.     override func setSelected(selected: Bool, animated: Bool) {
  237.     super.setSelected(selected, animated: animated)
  238.    
  239.     // Configure the view for the selected state
  240.     }
  241.     */
  242.  
  243. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement