2011-06-06 12 views
26

'da arayüz oluşturucuda bir çizgi nasıl çizilir? Listedeki bazı öğeleri ayırmak ve kullanıcı arayüzünü biraz daha düzenli hale getirmek için Interface Builder'da basit bir giriş satırı çizmek istiyorum. Nesne kitaplığında hiçbir "satır" veya benzeri nesne görmüyorum ve Arabirim oluşturucuda herhangi bir çizim komutunu bulamıyorum.Xcode 4

cevap

60

backgroundColor ile çok dar bir UIView kullanıyorum.

+0

, bu Apple'ın yönergelerini ihlal ediyor mu? Uygulamalarınızı bu geçici çözümle Apple'ın onay sürecinden geçirdiniz mi? – Kongress

+0

Hayır, bu herhangi bir kuralın ihlali değildir ve uygulamalarım onaylandı. –

+0

İdealten daha az, ama işe yarıyor. Teşekkürler. – Kongress

7

iPhone UI kitaplığında satır yok. Max OS X'deki bu işlevsellik NSBox tarafından sağlandı, ancak iPhone'da karşılık gelen UI öğesi yok.

+0

Yeterince adil. Geçici çözümler için herhangi bir fikir var mı? – Kongress

0

Bir görünüm kullandım ve bir çizgi gibi görünmesi için & rengini değiştirdim. Ama benim sorunum, dikey bir kaydırma görünümünde satırı kullanıyorum ve çizgiler de kayıyor.

1

Görünüm yerine, neden sadece bir etiket kullanmalı ve uygun arka plan rengini ayarlamamalısınız?

+0

UILabel, UIView'den miras alır. Yani aslında aynı şeyi yapıyorsun. Ayrıca, bir satırda hiç metin olmadığından, bir UILabel'in getirdiği ek işlevselliklere ihtiyacınız olmaz. –

7

UIView'in performansı etkileyebileceğinden korkuyorsanız, CoreGraphics 'CAShapeLayers'ı kullanarak kod içinde bir çizgi çizebilirsiniz.

Her UIView'de bir CALayer vardır, bu yüzden çizgiyi çizin ve CALayer görünümlerine ekleyin.

(projenize Kuvars çerçevesini eklemek için emin olun)

UIBezierPath *linePath = [UIBezierPath bezierPathWithRect:CGRectMake(0, 0,self.view.frame.size.width, 1)]; 

//shape layer for the line 
CAShapeLayer *line = [CAShapeLayer layer]; 
line.path = [linePath CGPath]; 
line.fillColor = [[UIColor blackColor] CGColor]; 
line.frame = CGRectMake(xPosition, yPosition, self.view.frame.size.width,1); 

[self.view.layer addSublayer:line]; 
0

Arayüz Oluşturucu temel gölgeleri çizmek izin vermez: Ya özel bir UIView drawRect veya görünümü denetleyicisi yapabilirsiniz bir iç satır için. Photoshop ile çalışıyorsanız bunu biliyorsunuz.

Aşağıdaki kod, çizgi beyaz/bej Arka Planın önünde ise bir "ek" çizecektir.

UIView *line = [[UIView alloc] initWithFrame:CGRectMake(0, 0, width, 1.0f)]; 
line.backgroundColor = [UIColor colorWithRed:(200.0f/255.0f) green:(200.0f/255.0f) blue:(200.0f/255.0f) alpha:1.0f]; 
line.layer.shadowColor = [UIColor darkGrayColor].CGColor; 
line.layer.shadowOffset = CGSizeMake(0.0f, 1.0f); 
line.layer.shadowRadius = 0.5f; 
line.layer.shadowOpacity = 0.4f; 
line.layer.masksToBounds =NO; 
[Background addSubview:line]; 

> < QuartzCore/QuartzCore.h içe unutmayın.

0

Tümleştirici - Arayüz Oluşturucu olarak, yüksekliğin 2 noktaya ayarlandığı bir görünüm ekleyin. Bu görünüme bir IBOutlet bağlayın ve katman kenarlığı rengini ve genişliğini ayarlayın:

self.mySeparatorLine.layer.borderWidth = 1.0f; self.mySeparatorLine.layer.borderColor = [UIColor lightGrayColor] .CGColor;