Xcode
Tworzenie niestandardowych kontrolek w Konstruktorze interfejsów za pomocą @IBDesignable
Szukaj…
Uwagi
Dzięki wprowadzeniu dyrektyw @IBDesignable
i @IBInspectable
w Swift znacznie łatwiej było tworzyć niestandardowe formanty w interfejsie Builder. Programiści mogą teraz tworzyć bogate, złożone, w pełni animowane elementy sterujące przy użyciu zaledwie kilku dodatkowych wierszy kodu. Jestem zaskoczony, jak wielu programistów jeszcze nie w pełni wykorzystało tę funkcję, i często stwierdzam, że dodanie tylko kilku wierszy kodu do istniejących klas może znacznie ułatwić ich pracę.
Pamiętaj, że te funkcje są również dostępne w Objective-C i są świetnym sposobem na tchnienie życia w stare klasy. Odpowiednikami składniowymi w celu C są IB_DESIGNABLE i IBInspectable, ale na razie skoncentruję się na przykładach w Swift.
Zaokrąglony widok renderowany na żywo
Jest to tak powszechny wymóg w rozwoju iOS i zawsze było to coś, co trzeba było zrobić wyłącznie w kodzie (lub używając obrazów - fuj!). Teraz niezwykle łatwo jest podejrzeć jego działanie w Konstruktorze interfejsów, absolutnie nie ma usprawiedliwienia, aby go nie używać.
Oto kod: -
import UIKit
@IBDesignable
class MyRoundedView: UIView {
@IBInspectable var radius: CGFloat = 8 {
didSet {
self.layer.cornerRadius = radius
}
}
override func awakeFromNib() {
self.layer.cornerRadius = self.radius
self.layer.masksToBounds = true
}
}
Aby użyć tej klasy, dodaj ją do swojego projektu, a następnie otwórz scenorys w IB i utwórz normalny widok UIView o przyzwoitym rozmiarze. Nadaj mu kolor tła, abyś mógł go zobaczyć, a następnie przejdź do Inspektora tożsamości w prawym panelu Narzędzia i zmień typ klasy w menu rozwijanym na MyRoundedView
.
Gdy to zrobisz, pod „Klasą” i „Modułem” powinna pojawić się trzecia etykieta z napisem „Designables” i powinna na chwilę powiedzieć „Aktualizowanie”, zanim zmieni się na „Na bieżąco”. Oznacza to, że Xcode pomyślnie skompilował kod dla MyRoundedView
.
Teraz możesz otworzyć Inspektora atrybutów i powinieneś zobaczyć (może po krótkiej przerwie) nową sekcję u góry panelu z nagłówkiem „Mój zaokrąglony widok” i nowy atrybut oznaczony „Promień” o wartości 8 (ponieważ to to wartość początkowa, którą ustawiliśmy w kodzie). Pojawiło się to w Inspektorze atrybutów, ponieważ oznaczyliśmy go jako @IBInspectable
.
Możesz teraz zmienić to na inną liczbę i powinieneś zobaczyć aktualizację promienia zaokrąglonego narożnika widoku w czasie rzeczywistym!