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 ,...

Delegate Example in swift

 Add Two Number With Simple Delegate - Swift delegate protocol is with simple examples to understand the delegate pattern using protocols in swift.

        

        import UIKit

        import PlaygroundSupport

         

        PlaygroundPage.current.needsIndefiniteExecution = true



        class Developer {

            var manager: Manager?

            func developerWillAddTwoNumbers(a: Int, b: Int){

                let result = a + b

                manager?.addTwoNumber(result: result)

            }

        }


        class Manager {

            var developer: Developer?

            

            init (_develoepr: Developer){

                self.developer = _develoepr

                developer?.manager = self

            }

            

            func addTwoNumber(result: Int){

                print("Result: === \(result)")

            }

            

            func add(x: Int, y: Int){

                developer?.developerWillAddTwoNumbers(a: x, b: y)

            }

        }


        let objManager = Manager(_develoepr: Developer())

        objManager.add(x: 10, y: 5)



Download Image With Delegate  & protocol

        import UIKit

        import PlaygroundSupport


        PlaygroundPage.current.needsIndefiniteExecution = true



        struct Images {

        static let imageUrl = "https://www.easemytrip.com/images/offer-img/EMTFirst_hp.png"

        }


        protocol ImageDownloadDlegate : AnyObject {

            

        func didFinishedDownloadImage(result: Data?)

            

        }


        class ImageDownloader {

            

           weak var imageDownloadDlegate: ImageDownloadDlegate?

            

            func downloadImageServer(url: URL){

                URLSession.shared.dataTask(with: url) { imageData, response, error in

                    self.imageDownloadDlegate?.didFinishedDownloadImage(result: imageData)

                }.resume()

            }

        }


        class ImageViewer: ImageDownloadDlegate {

            var imageDownloader: ImageDownloader?

            

            init(_imageDownloader: ImageDownloader){

                self.imageDownloader = _imageDownloader

                imageDownloader?.imageDownloadDlegate = self

                imageDownloader?.downloadImageServer(url: URL(string: Images.imageUrl)!)

            }

            

            func didFinishedDownloadImage(result: Data?) {

                let image = UIImage(data: result!)

            }

            

        }


        let objImageViewer = ImageViewer(_imageDownloader: ImageDownloader())










Comments