Mój widok logowania ma widok podrzędny, który ma UIActivityView
aUILabel
napisem „Logowanie się ...”. Ten widok cząstkowy ma narożniki, które nie są zaokrąglone. Jak mogę je okrągłe?
Czy jest jakiś sposób, aby to zrobić w moim XIB?
ios
cocoa-touch
uiview
swój kod
źródło
źródło
cornerRadius
właściwość do tabeli przy użyciu tylko Konstruktora interfejsów, bez konieczności używania wstępnie renderowanych obrazów lub ustawiania jej w kodzie.Odpowiedzi:
Spróbuj tego
...
Uwaga: Jeśli próbujesz zastosować zaokrąglone narożniki do
UIViewController
widoku, nie należy go stosować w konstruktorze kontrolera widoku, ale raczej w instancji-viewDidLoad
po, któraview
jest faktycznie tworzona.źródło
Możesz także użyć funkcji Runtime Attribute zdefiniowanej przez użytkownika konstruktora interfejsu, aby ustawić ścieżkę klucza
layer.cornerRadius
na wartość. Pamiętaj jednak, aby dołączyćQuartzCore
bibliotekę.Ta sztuczka działa również w celu ustawienia layer.borderWidth, jednak nie będzie działać,
layer.borderColor
ponieważ oczekuje się, żeCGColor
nieUIColor
.Efekty nie będą widoczne w serii ujęć, ponieważ parametry te są oceniane w czasie wykonywania.
źródło
Clip Subviews
opcję w widoku IBTeraz możesz użyć szybkiej kategorii w UIView (kod poniżej obrazka) w @IBInspectable, aby wyświetlić wynik w serii ujęć (jeśli używasz kategorii, użyj tylko cornerRadius, a nie layer.cornerRadius jako kluczowej ścieżki.
źródło
@IBDesignable
aby uzyskać podgląd na żywo w IB! (Więcej na nshipster.com/ibinspectable-ibdesignable )Szybki
Krótka odpowiedź:
Dodatkowa odpowiedź
Jeśli doszedłeś do tej odpowiedzi, prawdopodobnie już widziałeś wystarczająco dużo, aby rozwiązać swój problem. Dodaję tę odpowiedź, aby dać trochę więcej wizualnego wyjaśnienia, dlaczego rzeczy robią to, co robią.
Jeśli zaczynasz od zwykłego
UIView
, ma kwadratowe rogi.Możesz nadawać mu zaokrąglone rogi, zmieniając
cornerRadius
właściwość widokulayer
.Większe wartości promienia dają bardziej zaokrąglone rogi
a mniejsze wartości dają mniej zaokrąglone rogi.
To może wystarczyć, aby rozwiązać problem właśnie tam. Czasami jednak widok może mieć widok podrzędny lub podwarstwę, która wykracza poza granice widoku. Na przykład, gdybym dodać sub widok takiego
lub jeśli było dodać sub warstwę takiego
Wtedy skończyłbym z
Teraz, jeśli nie chcę, żeby rzeczy wisiały poza granicami, mogę to zrobić
albo to
co daje ten wynik:
Zarówno
clipsToBounds
imasksToBounds
są równoważne . Po prostu pierwszy jest używany zUIView
drugim, a drugi zCALayer
.Zobacz też
źródło
blueView.frame.size.height/2
) powoduje idealnie zaokrąglony narożnik.Inne podejście niż to zrobiło Ed Marty:
Potrzebujesz setMasksToBounds, aby załadować wszystkie obiekty z IB ... Mam problem z zaokrągleniem mojego widoku, ale nie miałem obiektów z IB: /
to naprawiło to = D mam nadzieję, że to pomoże!
źródło
Jak opisano w tym poście na blogu , oto sposób na zaokrąglenie rogów UIView:
Fajne jest to, że możesz wybrać, które rogi chcesz zaokrąglić w górę.
źródło
Musisz najpierw zaimportować plik nagłówka
<QuartzCore/QuartzCore.h>
Nie przegap użycia -
setMasksToBounds
w przeciwnym razie efekt może nie zostać wyświetlony.źródło
Możesz użyć następującej
UIView
klasy niestandardowej, która może również zmienić kolor i szerokość obramowania. W tymIBDesignalbe
momencie możesz również zmieniać atrybuty w kreatorze interfejsów.źródło
źródło
Swift 4 - Korzystanie z IBDesignable
źródło
layer.cornerRadius
przywróceniu do pierwotnego stanu? (ei skąd storyboard xcode wie, jak ustawićcornerRadius
dopiero poUIView
zainicjowaniu oryginału )?źródło
- SwiftUI
W SwiftUI możesz używać
cornerRadius
modyfikatora bezpośrednio na dowolnym,View
co chcesz. Na przykład tego pytania:Zauważ, że nie ma już promienia diamentowego, więc nawet jeśli ustawisz narożnikRadius na więcej niż połowę wysokości , zaokrągli się on gładko.
Kasy tę odpowiedź do se jak Okrągłego szczegółowych Corners w SwiftUI
źródło
Proszę importować
Quartzcore framework
wtedy trzeba ustawićsetMaskToBounds
, abyTRUE
ten bardzo ważny wiersz.Następnie:
[[yourView layer] setCornerRadius:5.0f];
źródło
źródło
Zrób to programowo w obj c
Możemy to również zrobić ze stoaryboardu.
źródło
jeśli okrągły narożnik nie działa w viewDidload () , lepiej napisać kod w viewDidLayoutSubview ()
Mam nadzieję że to pomoże!
źródło
Możesz także użyć obrazu:
źródło
Ustaw narożny Właściwość dla okrągłego widoku
set masksToBounds Boolean Wartość obrazu nie będzie nadal rysowana poza granicą promienia narożnika
źródło
Korzystanie z rozszerzenia UIView:
Stosowanie:
źródło
W Swift 4.2 i Xcode 10.1
źródło
ON Xcode 6 Twoja próba
lub
źródło