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 .

Ustawienie typu klasy 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!

Aktualizacja właściwości podlegającej inspekcji



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow