Если вы любите расширения, это для вас. Если нет, я передумаю

Зачем нужны расширения?

Вам нужны расширения, потому что они экономят ваше время от повторного создания одного и того же снова и снова. Тебе не утомляет иногда то, что тебе приходится печатать это снова и снова?

На мой взгляд, использование расширения почти равносильно усердной работе и одновременно умной работе. Позвольте этому немного осознать, и вы оцените использование расширений.

Расширения подобны модульному компоненту вашего проекта, который можно перемещать из одного проекта в другой. Итак, если это облегчает вашу жизнь, почему бы не использовать их?

Я создал несколько приложений и делюсь с вами некоторыми расширениями, которые используются в большинстве моих проектов. Я надеюсь, что это поможет вам так же, как и мне.

Настройка представления XIB

Это будет особенно полезно, если вы всегда создаете XIB. Вставьте следующее в свое расширение и просто напишите одну строку кода, и вы закончите создание экземпляра XIB.

Пример

Вы создадите новое представление XIB и класс Swift. Назовем его HeaderView.

Вот и все. Вы только что избавились от необходимости набирать около 50 строк кода. Я здесь определенно преувеличиваю. Но на самом деле каждый раз, когда вам нужно создать экземпляр своего представления. Теперь вы можете просто использовать xibSetup()

Угловой радиус

Большая часть дизайна, который вы видите сейчас, представляет собой либо радиус угла, либо тень, либо линию границы, либо даже закругленную.

Эти дизайны повсюду, но вы должны признать, что они украшают ваши приложения, и пользователи любят эти дизайны. Вот код:

extension UIView {
    func addCornerRadius(_ radius: CGFloat = 4) {
        layer.cornerRadius = radius
        layer.masksToBounds = true
    }
}

Пример

Значение радиуса угла по умолчанию всегда равно 4, но если вам нужно что-то другое, кроме 4, вы можете просто вставить любое число. В следующем примере вы будете использовать 16.

Пограничная линия

Этот фрагмент кода добавит границу с регулируемой шириной. Вы можете выбрать желаемый цвет границы.

extension UIView {
	func addBorderLine(width: CGFloat = 1, color: UIColor) {
        layer.borderWidth = width
        layer.borderColor = color.cgColor
    }
}

Пример

Как обычно, значение ширины по умолчанию - 1.0, но вы определенно можете поиграть с числом. Здесь я устанавливаю ширину 2,0.

parentView.addBorderLine(width: 2.0, color: .green)

Вы даже можете использовать addCornerRadius, а затем addBorderLine. Это результат эффекта combination. Такая красота.

parentView.addCornerRadius(16)
parentView.addBorderLine(width: 2.0, color: .green)

Круглый

Чтобы вид был полностью круглым, ширина и высота должны соответствовать друг другу.

Если этого не произойдет, вы, вероятно, увидите капсулу или причудливую форму. Вот код:

extension UIView {
    func makeRounded() {
        layer.masksToBounds = false
        layer.cornerRadius = self.frame.height / 2
        clipsToBounds = true
    }
}

Пример

Эта строка кода примет круглую форму.

parentView.makeRounded()

Это то, что я имел в виду, когда вы видите форму капсулы. Здесь ширина и высота не эквивалентны.

Другой пример: вы можете увидеть идеальный круглый круг, потому что ширина и высота равны 100 соответственно.

Тень

Это, вероятно, наиболее часто используемый дизайн в приложении, но определенно используйте его экономно, поскольку он влияет на производительность приложения.

Пример

Вероятно, вы понимаете, почему он был наиболее часто используемым, потому что он определенно меняет внешний вид приложения. Это делает приложение еще более привлекательным. Дизайнерам это нравится, но они просто не знают, через что нам нужно пройти, чтобы это сработало.

Помните: вам придется настроить shadowOffset, shadowOpacity, shadowRadius и shadowColor, чтобы они соответствовали стандартам вашего дизайнера.

parentView.addShadow()

Цвет

Иногда вы просто не можете найти нужный вам тип цвета в Xcode, потому что у ваших дизайнеров есть список шестнадцатеричных кодов, которые они выбирают случайным образом. Следующий код поможет в этом.

Пример

Вы можете добавить шестнадцатеричный код, чтобы получить нужный вам цвет.

parentView.backgroundColor = UIColor.init(hexFromString: "#7dbf0d")

Если список цветов будет продолжать расти, его будет сложно поддерживать. Вы можете видеть, что я статически создал переменную и могу просто получить доступ к цвету с помощью следующего кода.

parentView.backgroundColor = UIColor.peaGreen

Дата

Если ваши приложения имеют дело с датами, вам, вероятно, придется иметь дело с множеством различных форматов дат. Но как узнать, какой формат даты соответствует вашим критериям?

Я использую этот веб-сайт https://nsdateformatter.com, чтобы понять, какой формат мне нужен.

С помощью приведенного ниже кода вы получаете тип String вместо типа Date, который вы можете широко использовать, как на этикетке, и так далее.

extension Date {
    func getCurrentDate(_ format: String = "dd/MM/yyyy HH:mm:ss") -> String {
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = format
        dateFormatter.timeZone = .current
        return dateFormatter.string(from: Date())
    }
}

Пример

Вы можете создать Label и создать экземпляр Date для использования расширения, используя следующий код:

dateLabel.text = Date().getCurrentDate()

В этом результате используется формат: dd/MM/yyyy HH:mm:ss

Если вам нужно что-то еще, вы можете изменить формат. Далее вы увидите пример dd-MM-yyyy. Имейте в виду, что письмо соответствует его стандарту, иначе вы получите что-то другое.

А пока я надеюсь, что это повысит вашу продуктивность в создании приложений. По крайней мере, для меня.

Спасибо за чтение.