HomeNewsCell.swift 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. //
  2. // HomeNewsCell.swift
  3. // Sirani
  4. //
  5. // Created by Anhar Solehudin on 06/04/19.
  6. // Copyright © 2019 Anhar Solehudin. All rights reserved.
  7. //
  8. import UIKit
  9. class HomeNewsCell: UITableViewCell {
  10. @IBOutlet weak var lblTitle: UILabel!
  11. @IBOutlet weak var lblDate: UILabel!
  12. @IBOutlet weak var lblPreContent: UILabel!
  13. @IBOutlet weak var thumbImageView: UIImageView!
  14. override func awakeFromNib() {
  15. super.awakeFromNib()
  16. self.selectionStyle = .none
  17. self.backgroundColor = .clear
  18. contentView.backgroundColor = .white
  19. contentView.layer.cornerRadius = 14
  20. contentView.layer.shadowColor = UIColor.black.cgColor
  21. contentView.layer.shadowOffset = CGSize(width: 0, height: 2)
  22. contentView.layer.shadowRadius = 5
  23. contentView.layer.shadowOpacity = 0.07
  24. contentView.layer.masksToBounds = false
  25. thumbImageView.layer.cornerRadius = 10
  26. thumbImageView.clipsToBounds = true
  27. lblTitle.font = UIFont.systemFont(ofSize: 14, weight: .bold)
  28. lblTitle.textColor = UIColor.siraniTextPrimary
  29. lblDate.font = UIFont.systemFont(ofSize: 11, weight: .semibold)
  30. lblDate.textColor = UIColor.siraniPrimaryBlue
  31. lblPreContent.font = UIFont.systemFont(ofSize: 12, weight: .regular)
  32. lblPreContent.textColor = UIColor.siraniTextSecondary
  33. }
  34. override func layoutSubviews() {
  35. super.layoutSubviews()
  36. contentView.frame = contentView.frame.inset(by: UIEdgeInsets(top: 5, left: 16, bottom: 5, right: 16))
  37. }
  38. func updateViews(news: News) {
  39. let url = news.thumb_filename.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
  40. thumbImageView.loadFrom(URLAddress: url)
  41. lblTitle.text = news.title_news
  42. lblDate.text = news.dateNew()
  43. lblPreContent.text = news.pra_news
  44. }
  45. }
  46. extension UIImageView {
  47. func loadFrom(URLAddress: String) {
  48. guard let url = URL(string: URLAddress) else {
  49. return
  50. }
  51. URLSession.shared.dataTask(with: url) { [weak self] data, response, error in
  52. if let error = error {
  53. print("Error loading image: \(error.localizedDescription)")
  54. return
  55. }
  56. guard let data = data, let loadedImage = UIImage(data: data) else { return }
  57. DispatchQueue.main.async {
  58. self?.image = loadedImage
  59. }
  60. }.resume()
  61. }
  62. }