Czy można dodać obramowanie tuż nad UIView, jeśli tak, to w jaki sposób?Dodać tylko górną granicę do UIView z Quartzcore/layer?
Odpowiedz
Mam rozwiązanie znajdź dla mnie, oto sztuczki:
CGSize mainViewSize = self.view.bounds.size;
CGFloat borderWidth = 1;
UIColor *borderColor = [UIColor colorWithRed:37.0/255 green:38.0/255 blue:39.0/255 alpha:1.0];
UIView *topView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, mainViewSize.width, borderWidth)];
topView.opaque = YES;
topView.backgroundColor = borderColor;
topView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin;
[self.view addSubview:topView];
Ten jest świetny, jeśli musisz się martwić o rotację. – werm098
Właśnie Testowanie Poniżej kilka linii kodu i działa bardzo ładnie, tylko przetestować go do swojego projektu. mam nadzieję, że łatwo dostaniesz swoje rozwiązanie.
Po co tworzyć nowe widoki i dodawać je do istniejącego widoku ..? Do tego zadania wystarczy utworzyć jeden CALayer i dodać go do warstwy Twoich istniejących UIView jest zrobić w następujący sposób: -
#import <QuartzCore/QuartzCore.h>
- (void)viewDidLoad
{
CALayer *TopBorder = [CALayer layer];
TopBorder.frame = CGRectMake(0.0f, 0.0f, myview.frame.size.width, 3.0f);
TopBorder.backgroundColor = [UIColor redColor].CGColor;
[myview.layer addSublayer:TopBorder];
[super viewDidLoad];
}
i to wyjście jest: -
Tak, dobrze, działa też dobrze! – GilbertOOl
Jeszcze jedna precyzja, twoje rozwiązanie zamiast rozwiązania dla kopalni radzi sobie z autorotacją! – GilbertOOl
UIView zrobi to przynajmniej równie dobrze – Pascalius
Oto kategoria UIView, który pozwala po każdej stronie UIView dodajesz warstwę back-back lub widokową: UIView+Borders
nie działa z UIToolBarem – chipbk10
Utworzono tę prostą podklasę UIView, aby działała w Konstruktorze interfejsu i działa w ITH ograniczenia: https://github.com/natrosoft/NAUIViewWithBorders
Oto mój post na blogu o tym: http://natrosoft.com/?p=55
- Zasadniczo tylko kropla w UIView interfejs Builder i zmienić jej typ klasy do NAUIViewWithBorders.
- Następnie w VC viewDidLoad zrobić coś takiego:
/* For a top border only ———————————————- */
self.myBorderView.borderColorTop = [UIColor redColor];
self.myBorderView..borderWidthsAll = 1.0f;
/* For borders with different colors and widths ————————— */
self.myBorderView.borderWidths = UIEdgeInsetsMake(2.0, 4.0, 6.0, 8.0);
self.myBorderView.borderColorTop = [UIColor blueColor];
self.myBorderView.borderColorRight = [UIColor redColor];
self.myBorderView.borderColorBottom = [UIColor greenColor];
self.myBorderView.borderColorLeft = [UIColor darkGrayColor];
Oto bezpośredni link do pliku .m więc można zobaczyć realizacji: NAUIViewWithBorders.m
Jest projekt demo, jak również.
Dzięki za to - uznałem, że jest naprawdę solidny i prosty w obsłudze, z przyjemnie prostą implementacją. – weienw
lepiej z rozszerzeniem, bez podklasy –
odpowiedź GilbertOOI w Swift 2: odpowiedź
let topBorder: CALayer = CALayer()
topBorder.frame = CGRectMake(0.0, 0.0, myView.frame.size.width, 3.0)
topBorder.backgroundColor = UIColor.redColor().CGColor
myView.layer.addSublayer(topBorder)
Remusa w Obj-C:
CALayer *topBorder = [CALayer new];
topBorder.frame = CGRectMake(0.0, 0.0, self.frame.size.width, 3.0);
topBorder.backgroundColor = [UIColor redColor].CGColor;
[myView.layer addSublayer:topBorder];
GilbertOOI's answer w Swift 4:
let topBorder: CALayer = CALayer()
topBorder.frame = CGRect(x: 0, y: 0, width: myView.frame.size.width, height: 1)
topBorder.backgroundColor = UIColor.purple.cgColor
myView.layer.addSublayer(topBorder)
- 1. Usunąć górną i dolną granicę UISearchBar i cień?
- 2. wyszukiwania mapę z górną granicę i dolna granica
- 3. Różnica między ograniczone parametru Typ i górną granicę Wildcard
- 4. Symbol wieloznaczny z górną granicą ostateczną
- 5. Zaokrąglić rogi UIView i zaokrąglić również granicę warstwy widoku
- 6. Rysuj tylko zewnętrzną granicę dla komórek TableLayoutPanel
- 7. Draw cień tylko z 3 stron UIView
- 8. Jak ustawić granicę css tylko z jednej strony?
- 9. Dodawanie padding do UIView
- 10. Jak dodać kontur graniczny w UIView Iphone.Please Przeczytaj opis
- 11. Dodawanie separator do baru granicę
- 12. Jak dodać UIView powyżej UITableView w iOS?
- 13. Jak dodać cień do koła UIImageView lub UIView?
- 14. Jak dodać UIView na pasku nawigacji?
- 15. Jak programowo dodać UIImage do UIImageView następnie dodać UIImageView do innego UIView?
- 16. Usuń górną krawędź strony z Bootstrapa
- 17. Jak uzyskać górną krawędź do glifów czcionki?
- 18. Czy możesz dodać UIView powyżej UINavigationBar?
- 19. Wybierz górną 1 wiersz z każdej grupy
- 20. Dodawanie niestandardowego UIView z autolayout do iCarousel
- 21. Przechwytywanie tylko UIView 2 palec UIPanGestureRecognizer
- 22. Jak ustawić górną linię graniczną/separatora w ios?
- 23. Dodawanie UINavigationBar do UIView programowo?
- 24. Jak dodać nagłówki tylko do określonych plików z nginx
- 25. UIImage z regionu UIView
- 26. Ładowanie .xibs do UIView
- 27. Jak podać pojedynczą granicę linii do widoku siatki Android
- 28. Szerokość i wzrost wysokości po CGAffineTransformRotate stosowane do UIView
- 29. Jak dodać granicę 1px do elementu div, którego szerokość jest procentowa?
- 30. Rendering UIView z dziećmi
można ustawić view.layer. bordercolor and borderwidth, bordercolor – rakeshNS
Nie, przepraszam, twoje rozwiązanie dodać obramowanie dla wszystkich widoków, nie TYLKO górny uIView !!! – GilbertOOl
możemy ustawić obramowanie z jednej strony UIView, ten post może być pomocny http://stackoverflow.com/questions/11236607/uiview-set-only-side-borders – rakeshNS