SORU
5 EKİM 2011, ÇARŞAMBA


UİView alt sınır?

A UIScrollView *toScrollView (genişliği ekran), ben eklemek için bir gri alt sınır (tam olarak bunun için alan oluştur bakış iPhone'un yerli İletileri uygulaması).

Bunu başarmak için, takip ettim Cocoa Touch: How To Change UIView's Border Color And Thickness? ve sadece kapalı üst sınır ile özel UINavigationBar ve toScrollView'in x-koordinat -1 & genişlik 322, böylece sol ve sağ sınır sadece ekran.

Bu iyi görünüyor, ama bir hack sayılır, ve eğer bunu yapmak için daha iyi bir yolu varsa merak ettim.

- (void)viewDidLoad {
    [super viewDidLoad];

    // Add UINavigationBar *navigationBar at top.
    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]
                                             initWithBarButtonSystemItem:UIBarButtonSystemItemCancel
                                             target:self action:@selector(cancelAction)];
    UINavigationBar *navigationBar = [[UINavigationBar alloc]
                                      initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 44.0f)];
    navigationBar.items = [NSArray arrayWithObject:self.navigationItem];

    // Add UIScrollView *toScrollView below navigationBar.
    UIScrollView *toScrollView = [[UIScrollView alloc]
                                  initWithFrame:CGRectMake(-1.0f, 43.0f, 322.0f, 45.0f)];
    toScrollView.backgroundColor = [UIColor whiteColor];
    toScrollView.layer.borderColor = [UIColor colorWithWhite:0.8f alpha:1.0f].CGColor;
    toScrollView.layer.borderWidth = 1.0f;
    [self.view addSubview:toScrollView];
    [self.view addSubview:navigationBar]; // covers top of toScrollView
}

CEVAP
19 Kasım 2011, CUMARTESİ


Yerine UIView, @İmreKelényi anlaşılacağı gibi, CALayer kullanabilirsiniz:

// Add a bottomBorder.
CALayer *bottomBorder = [CALayer layer];

bottomBorder.frame = CGRectMake(0.0f, 43.0f, toScrollView.frame.size.width, 1.0f);

bottomBorder.backgroundColor = [UIColor colorWithWhite:0.8f 
                                                 alpha:1.0f].CGColor;

[toScrollView.layer addSublayer:bottomBorder];

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • MusicDeluxeTV

    MusicDeluxeT

    14 Mayıs 2010
  • TheFlightsuit

    TheFlightsui

    22 HAZİRAN 2009
  • Warner Bros. UK

    Warner Bros.

    6 HAZİRAN 2008