Skip to main content

Custom Loader (Activity Indicator) in Swift

Creating a custom activity indicator in Swift allows you to tailor the appearance and behavior of your loading spinner to fit the style of your app. Here's a step-by-step guide to creating a simple custom activity indicator using UIView Step 1: Create a New Swift File for the Custom Activity Indicator Create a new Swift file and name it  RotatingCirclesView.swift . Add the following code to define a custom UIView subclass for your activity indicator: // //   RotatingCirclesView.swift //   Welcome In // //   Created by Praveen Kumar on 05/09/24. // import UIKit class RotatingCirclesView : UIView {          let circle1 = UIView ( frame : CGRect ( x : 20 , y : 20 , width : 60 , height : 60 ))     let circle2 = UIView ( frame : CGRect ( x : 120 , y : 20 , width : 60 , height : 60 ))          let position : [ CGRect ] = [ CGRect ( x : 30 , y : 20 , width : 60 , height : 60 ), CGRect ( x : 60 , y : 15 ,...

Array Type JSON Parsing & JSON Serialization

    func callApi(){

        let sessionConfig = URLSessionConfiguration.default

        let sessionUrl = URLSession(configuration: sessionConfig)

        let url = URL(string: "URL")!

        let request: URLRequest = URLRequest(url:url)

        let task = sessionUrl.dataTask(with: request){

            (data, response, error) in

            if error != nil {

                print(error!.localizedDescription)

            } else{

                do {

                    if let json = try! JSONSerialization.jsonObject(with: data!, options: .allowFragments) as? [Any] {

                        /*for item in json {

                         if let object = item as? [String: Any]{

                         print(object)

                         }

                         }*/

                      if let result  = json as? NSArray {

                         for dict in result {

                          if let respDict = dict as? Dictionary<String, AnyObject>{

                           self.noteData.append(NoteData.init(responseDict: respDict))

                                }

                            }

                        }

                        // Reload data of TableView/CollectionView

                        DispatchQueue.main.async {

                            self.tblView.reloadData()

                        }

                    }

                }catch {

                    print("error in JSONSerialization")

                }

            }}

        task.resume()

    }

Comments