Jak stworzyć podwójne linie graniczne w UIImage za pomocą Swift?

Dec 04 2020

Próbowałem znaleźć sztuczki z „podwójną ramką” w Swift, aby zrobić to w ten sposób. Mam przeczucie, że może to być "podwójna ramka" w UIImage.

Daj mi znać, jeśli znasz kody. :)

Odpowiedzi

1 AJ16 Dec 04 2020 at 14:27

Możesz po prostu wziąć UIView i dodać do niego UIImageView. Wyczyść kolor UIView, aby wyczyścić.

Oto, co zrobiłem, używając storyboardu.

  1. Dodano w nim UIView i UIImageView, kolor widoku jest ustawiony na wyraźny, a widok obrazu ma 15 punktów ze wszystkich stron. Zmień zgodnie ze swoimi wymaganiami (patrz zdjęcie 1).

  2. To jest kod kontrolera widoku (patrz ilustracja 2).

  3. Wyjście (patrz rysunek 3).

Uwaga : tylko podstawowy pomysł, chociaż możesz zmienić kolor i szerokość obramowania itp. Zgodnie z wymaganiami.

Układ scenorysu

Wyświetl kod kontrolera

Wynik

2 SumitJain Dec 04 2020 at 11:55

Musisz dodać borderColor (czarny) i cornerRadius do domyślnej warstwy UIImageView. Oprócz tego musisz dodać kolejną podwarstwę w UIImageView z borderColor w kolorze szarym.

imageView.layer.borderWidth = 4.0
imageView.layer.borderColor = UIColor.gray.cgColor
imageView.layer.cornerRadius = imageView.frame.width / 2

let borderLayer = CALayer()
borderLayer.frame = imageView.bounds
borderLayer.borderColor = UIColor.black.cgColor
borderLayer.borderWidth = 14.0
borderLayer.cornerRadius = borderLayer.frame.width / 2
imageView.layer.insertSublayer(borderLayer, above: imageView.layer)

Zobacz załączone demo placu zabaw.

PeterDu Dec 04 2020 at 11:09

Myślę, że możesz dodać 1 krąg (UIView) jako podwidok między UIImageView i UIImage. Na przykład możesz zainicjować UIImageView z graykolorem dla zewnętrznego roguRadius. Następnie dodajesz okrąg UIView i na końcu UIImage.

Lub alternatywą może być dodanie UIImage przed kółkiem UIView (z przezroczystym tłem).

Myślę, że podobny kod można znaleźć tutaj: Widok obrazu Podwójna ramka