Giter Site home page Giter Site logo

sdosswiftextension's Introduction

SDOSSwiftExtension

Introducción

SDOSSwiftExtension implementa nuevas funcionalidades con el fin de añadir más potencia al lenguaje. Cómo norma general se crearán extensiones de las clases existentes añadiendo nuevas funcionalidades pero también es posible que se creen nuevos componentes con el fin de facilitar el uso del lenguaje

Instalación

Cocoapods

Usaremos CocoaPods. Hay que añadir la dependencia al Podfile:

pod 'SDOSSwiftExtension', '~>1.0.2' 

Cómo se usa

La librería en sí no es una implementación de una funcionalidad independiente, por lo que el desarrollador la usará en caso de necesitar alguno de los métodos de utilidad que ésta implemente.

Estílos

Entre las funcionalidades que implementa contiene la aplicación de estílos para las vistas. Para aplicar estilos a una vista, está debe implementar el protocolo Stylable. Este protocolo marca los componentes que pueden ser usados por el struct Style que contiene la lógica para la aplicación de estilos. Por defecto las clases UIView y UIViewController (y todas sus subclases) implementan el protocolo y son candidatos a la aplicación de estilos.

/// Extensión de UIView para poder aplicar estilos sobre él
extension UIView: Stylable { }

/// Extensión de UIViewController para poder aplicar estilos sobre él
extension UIViewController: Stylable { }

Para crear nuevos estílos hay que crear extensiones de la clase que se requiera y crear variables estáticas o métodos estáticos (este caso es si necesitamos pasarle parámetros) que devuelvan el tipo Style<Class>. Estás extensiones las crearemos en el fichero Style+Design.swift

Estílo para UIView que pone el background color en azul

extension UIView {
    enum style {
        typealias View = UIView
        
        ///Apply with the next line: UIView.style.main.apply(to: view)
        static var main: Style<View> {
            return Style<View> {
                $0.backgroundColor = .blue
            }
        }
    }
}   

Estílo para UILabel que cambia el color y el tamaño de la fuente

extension UILabel {
    enum style {
        typealias View = UILabel
        
        ///Apply with the next line: UILabel.style.title.apply(to: label)
        static var title: Style<View> {
            return Style<View> {
                $0.font = UIFont.boldSystemFont(ofSize: 25)
                $0.textColor = .white
            }
        }
    }
}

Para aplicar los estílos llamaremos a la variable o método estáticos donde tengamos la vista disponible:

func loadUI() {
    UIView.style.main.apply(to: self.viewBackgorund)
    UILabel.style.title.apply(to: self.lbTitle)
}

Referencias

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.