Last active
May 23, 2018 06:37
-
-
Save bulentsiyah/bb9155ada152ef7aa6c2350d5d15167d to your computer and use it in GitHub Desktop.
Revisions
-
bulentsiyah revised this gist
May 23, 2018 . No changes.There are no files selected for viewing
-
bulentsiyah created this gist
May 23, 2018 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,371 @@ // // BildirTableViewController.swift // Bildir-Basic // // Created by Bülent Siyah on 12.05.2018. // Copyright © 2018 Bülent Siyah. All rights reserved. // import UIKit import CoreLocation class BildirTableViewController: UITableViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate, CLLocationManagerDelegate, UITextViewDelegate{ @IBOutlet weak var aciklamattext: UITextView! @IBOutlet weak var konuSecimi: UILabel! @IBOutlet weak var imageSelected: UIImageView! var boxView = UIView() var window = UIWindow() @IBOutlet var tableVieww: UITableView! var imagePicker = UIImagePickerController() var baseImage: UIImage! static var secilenKonu = Konu() var locationManager: CLLocationManager = CLLocationManager() var latestLocation: CLLocation! override func viewDidLoad() { super.viewDidLoad() imagePicker.delegate = self aciklamattext.delegate = self aciklamattext.text = "Açıklama giriniz" aciklamattext.textColor = UIColor.lightGray locationManager.desiredAccuracy = kCLLocationAccuracyBest locationManager.delegate = self latestLocation = nil self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "ileri", style: .plain, target: self, action: #selector(ileriTabbed)) if(StaticObject.KonuList.count == 1){ BildirTableViewController.secilenKonu = StaticObject.KonuList[0] konuSecimi.text = BildirTableViewController.secilenKonu.Adi } NotificationCenter.default.addObserver(self, selector: #selector(BildirTableViewController.konuSecildi), name: NSNotification.Name(rawValue: "konuSecildi"), object: nil) NotificationCenter.default.addObserver(self, selector: #selector(BildirTableViewController.resimGoster), name: NSNotification.Name(rawValue: "resimGoster"), object: nil) locationManager.requestWhenInUseAuthorization() locationManager.startUpdatingLocation() } func textViewDidBeginEditing(_ textView: UITextView) { if aciklamattext.textColor == UIColor.lightGray { aciklamattext.text = nil aciklamattext.textColor = UIColor.black } } func textViewDidEndEditing(_ textView: UITextView) { if aciklamattext.text.isEmpty { aciklamattext.text = "Açıklama giriniz" aciklamattext.textColor = UIColor.lightGray } } override func viewWillAppear(_ animated: Bool) { if #available(iOS 11.0, *) { self.title = "Bildir" self.tabBarController?.navigationItem.title = "Bildir" self.navigationController?.navigationBar.topItem!.title = "Bildirimler" self.navigationController?.navigationBar.prefersLargeTitles = true self.navigationController?.navigationBar.topItem!.largeTitleDisplayMode = .always self.navigationItem.largeTitleDisplayMode = .always } else { } } override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { if(indexPath.row == 1 || indexPath.row == 3){ return 180 }else{ return 45 } } @objc func konuSecildi() { do{ konuSecimi.text = BildirTableViewController.secilenKonu.Adi }catch{} } @objc func resimGoster() { do{ //self.boxView.removeFromSuperview() self.imageSelected.image = self.baseImage }catch{} } @objc func ileriTabbed() { if BildirTableViewController.secilenKonu.Adi == "Seçiniz"{ self.mesajGoster("Konu seçiniz") return } if let temp = aciklamattext.text{ if temp == "Açıklama giriniz"{ self.mesajGoster("Açıklama giriniz") return } } if StaticObject.gonderilcekNotification.Photo == nil{ self.mesajGoster("Resim çekiniz/seçiniz") return } do{ if latestLocation.coordinate.latitude == 0.0{ self.mesajGoster("Konumunuz alınamadı") return } }catch{ } StaticObject.gonderilcekNotification.Guid = CFUUIDCreateString(nil, CFUUIDCreate(nil)) as String StaticObject.gonderilcekNotification.SubjectUID = BildirTableViewController.secilenKonu.UID StaticObject.gonderilcekNotification.Description = aciklamattext.text StaticObject.gonderilcekNotification.Longtitude = latestLocation.coordinate.longitude StaticObject.gonderilcekNotification.Latitude = latestLocation.coordinate.latitude StaticObject.gonderilcekNotification.PhotoGuid = CFUUIDCreateString(nil, CFUUIDCreate(nil)) as String //StaticObject.gonderilcekNotification.Photo self.performSegue(withIdentifier: "toBildiren", sender: nil) } override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { if(indexPath.row == 0){ self.performSegue(withIdentifier: "toKonuDetayi", sender: nil) }else if(indexPath.row == 2){ let alert:UIAlertController=UIAlertController(title: "Seçiniz", message: nil, preferredStyle: UIAlertControllerStyle.actionSheet) let cameraAction = UIAlertAction(title: "Kamera", style: UIAlertActionStyle.default) { UIAlertAction in self.openCamera(self.imagePicker) } let galeriAction = UIAlertAction(title: "Galeri", style: UIAlertActionStyle.default) { UIAlertAction in self.openGalery(self.imagePicker) } let cancelAction = UIAlertAction(title: "İptal", style: UIAlertActionStyle.cancel) { UIAlertAction in } // Add the actions alert.addAction(cameraAction) alert.addAction(galeriAction) alert.addAction(cancelAction) self.present(alert, animated: true, completion: nil) } tableView.deselectRow(at: indexPath, animated: false) } func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { latestLocation = locations[locations.count - 1] } /* override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { if(indexPath.row<1){ let cell = tableView.dequeueReusableCell(withIdentifier: "CellId") ?? UITableViewCell(style: UITableViewCellStyle.value1, reuseIdentifier: "CellId") cell.accessoryType = UITableViewCellAccessoryType.disclosureIndicator cell.textLabel?.text = landmarkNames[indexPath.row] cell.detailTextLabel?.text = landmarkNames_value[indexPath.row] return cell }else{ let cell = UITableViewCell() return cell } } */ func openCamera(_ imagePicker: UIImagePickerController) { if(UIImagePickerController .isSourceTypeAvailable(UIImagePickerControllerSourceType.camera)) { imagePicker.sourceType = UIImagePickerControllerSourceType.camera imagePicker.allowsEditing = true self .present(imagePicker, animated: true, completion: nil) } } func openGalery(_ imagePicker: UIImagePickerController) { if(UIImagePickerController .isSourceTypeAvailable(UIImagePickerControllerSourceType.photoLibrary)) { imagePicker.sourceType = UIImagePickerControllerSourceType.photoLibrary imagePicker.allowsEditing = true self .present(imagePicker, animated: true, completion: nil) } } func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { //imageView.image = info[UIImagePickerControllerEditedImage] as? UIImage baseImage = info[UIImagePickerControllerEditedImage] as? UIImage self.imageSelected.image = baseImage StaticObject.gonderilcekNotification.PhotoGuid = CFUUIDCreateString(nil, CFUUIDCreate(nil)) as String // addSavingPhotoView() var imageData: Data = UIImageJPEGRepresentation(baseImage, 0.1)! //var dataToService2 StaticObject.gonderilcekNotification.Photo = imageData.base64EncodedString(options: Data.Base64EncodingOptions.lineLength64Characters) /* self.asyncInitializeUpload(self.baseImage){ (result:String) in if(result == "success"){ NotificationCenter.default.post(name: NSNotification.Name(rawValue:"resimGoster"), object: nil) } }*/ self.dismiss(animated: true, completion: nil) } func addSavingPhotoView() { // You only need to adjust this frame to move it anywhere you want boxView = UIView(frame: CGRect(x: view.frame.midX - 90, y: view.frame.midY - 95, width: 180, height: 50)) boxView.backgroundColor = UIColor.white boxView.alpha = 0.8 boxView.layer.cornerRadius = 10 //Here the spinnier is initialized let activityView = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.gray) activityView.frame = CGRect(x: 0, y: 0, width: 50, height: 50) activityView.startAnimating() let textLabel = UILabel(frame: CGRect(x: 45, y: 0, width: 200, height: 50)) textLabel.textColor = UIColor.gray textLabel.text = "Lütfen Bekleyin" boxView.addSubview(activityView) boxView.addSubview(textLabel) view.addSubview(boxView) } func asyncInitializeUpload(_ baseImage: UIImage, completion: @escaping (_ : String) -> Void) { DispatchQueue.global(qos: .background).async { //self.baseImage = baseImage var imageData: Data = UIImageJPEGRepresentation(baseImage, 0.1)! //var dataToService2 StaticObject.gonderilcekNotification.Photo = imageData.base64EncodedString(options: Data.Base64EncodingOptions.lineLength64Characters) completion("success") /* self.uploadPhoto(dataToService2, fotografliBilgiUID: self.fotografliBilgiUID, isFinal: true){ (result:String) in if(result == "success"){ // completion("success") }else{ self.boxView.removeFromSuperview() self.mesajGoster(result) // completion("fail") } }*/ } } // MARK: - Table view data source /* override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "reuseIdentifier", for: indexPath) // Configure the cell... return cell } */ /* // Override to support conditional editing of the table view. override func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool { // Return false if you do not want the specified item to be editable. return true } */ /* // Override to support editing the table view. override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) { if editingStyle == .delete { // Delete the row from the data source tableView.deleteRows(at: [indexPath], with: .fade) } else if editingStyle == .insert { // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view } } */ /* // Override to support rearranging the table view. override func tableView(_ tableView: UITableView, moveRowAt fromIndexPath: IndexPath, to: IndexPath) { } */ /* // Override to support conditional rearranging of the table view. override func tableView(_ tableView: UITableView, canMoveRowAt indexPath: IndexPath) -> Bool { // Return false if you do not want the item to be re-orderable. return true } */ /* // MARK: - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation override func prepare(for segue: UIStoryboardSegue, sender: Any?) { // Get the new view controller using segue.destinationViewController. // Pass the selected object to the new view controller. } */ }