2009-12-31 29 views

cevap

210

İç görünümün içerik görünümü ile sarmal kaydırma görünümü arasındaki uzaklığını ayarlar. aScrollView.contentInset = UIEdgeInsetsMake(0, 0, 0, 7.0);

İşte bilgilendirici bir ekran görüntüsü (Şekil 1-3) sahiptir iyi iOS Reference Library article on scroll views var - Burada metin yoluyla çoğaltmak gerekir:

_|←_cW_→_|_↓_ 
    |  | 
--------------- 
    |content| ↑ 
↑ |content| contentInset.top 
cH |content| 
↓ |content| contentInset.bottom 
    |content| ↓ 
--------------- 
    _|_______|___ 
      ↑ 


    (cH = contentSize.height; cW = contentSize.width) 

kaydırma görünümü içerik görünümü çevreler artı ne olursa olsun dolgu sağlanır belirtilen içerik bilgileriyle.

+0

o zaman UIScrollView'a bir dolgu eklemek ister mi? Eğer bana pratik bir örnek veremezsen. Benim problemim onu ​​nasıl uygulayacak değil, ne zaman uygulayacağınız. – ForeignerBR

+27

Evet, içeriğin içeriğini kaydırma görünümünün içindedir. CSS 'padding' özelliği benzer. –

+0

Bunun için üzgünüm, kendi sorusunu taşıyabilirim, ancak buna dayanarak, her bir contentInset değerini örneğin contentHeight dışında 0 olarak ayarlarsanız ne olur? Bu, tüm kaydırma görünümünü ayarladığınız yüksekliğe zorlar mı? – jakev

2

Harika bir soru.

(scroller bir UIScrollView olan) Aşağıdaki örneği inceleyin:

float offset = 1000; 
[super viewDidLoad]; 
for (int i=0;i<500; i++) { 
    UILabel *label = [[[UILabel alloc] initWithFrame:CGRectMake(i * 100, 50, 95, 100)] autorelease]; 
    [label setText:[NSString stringWithFormat:@"label %d",i]]; 
    [self.scroller addSubview:label]; 
    [self.scroller setContentSize:CGSizeMake(self.view.frame.size.width * 2 + offset, 0)]; 
    [self.scroller setContentInset:UIEdgeInsetsMake(0, -offset, 0, 0)]; 
} 

takmalar istediğiniz içeriği üzerinde bir "pencere" sahip olmasını kaydirac zorlamak için SADECE yoldur. Hala bu örnek kod ile uğraşıyorum, ama fikir şu: UIScrollView üzerinde bir "pencere" almak için insets kullanın.

76

Jball'un yanıtı, içerik özetlerinin mükemmel bir açıklaması olsa da, ne zaman kullanılacağını sormaz.

_|←_cW_→_|_↓_ 
    |  | 
--------------- 
    |content| ↑ 
↑ |content| contentInset.top 
cH |content| 
↓ |content| contentInset.bottom 
    |content| ↓ 
--------------- 
    |content|  
-------------↑- 

bunu yaparken ne olsun Yani, ama bunun faydası sadece kaydırırken gösterir: Onun şemalar ödünç edeceğiz içeriğin üst satırı hala olacaktır

_|←_cW_→_|_↓_ 
    |content| ← content is still visible 
--------------- 
    |content| ↑ 
↑ |content| contentInset.top 
cH |content| 
↓ |content| contentInset.bottom 
    |content| ↓ 
--------------- 
    _|_______|___ 
      ↑ 

O Görünüşe göre hala kaydırma görünümü çerçevesinde. Ofset üst düşünmek bir yolu kurmak bakmak,

bu aslında kullanılan bir yer görmek için "ne kadar biz üst tüm yol kaydırılan yaparken kaydırma görünümünde aşağı içeriği kaydırmaya" dir iphone'da -in Resimleri uygulaması. Gezinme çubuğu ve durum çubuğu saydamdır ve kaydırma görünümünün içeriği altında görünür. Bunun nedeni, kaydırma görünümünün çerçevesinin o kadar uzağa uzanmasıdır. Ancak içeriğin içeri girmesi için değilse, içeriğin en üst kısmına gittiğinizde şeffaf gezinme çubuğunu temizleyemezsiniz.

+0

sayfasının üstüne gelin (contenInset) Burada güzel olan şey, "bulanıklık ile durum çubuğu altında kaydırma" efekti oluşturmak için verilerinizi kullanabilmenizdir. – TheEye

+0

Güzel bir açıklama, yoksun. –

+0

Fotoğraf uygulaması hakkında örnek kolay anlaşıldı. – abhi1992

7

İçerik kalıpları, Kullanıcı Arabiriminin diğer bölümlerinin altına giren içeriğe sahip olma sorununu çözmektedir ve yine de kaydırma çubuklarını kullanarak erişilebiliyor. Başka bir deyişle, İçerik Ekleminin amacı, etkileşim alanını gerçek alanından daha küçük yapmaktır. biz ekranın üç mantıksal alanları vardır nereye

durum düşünün:

TOP BUTTONS 

TEXT 

BOTTOM TAB BAR 

ve biz METİN TOP DÜğMELER altında şeffaf görünmesini asla istiyorum, ama biz Metin ALT TAB BAR altında görünmesini istediğiniz ve yine de kaydırmaya izin verir, böylece metinleri ALT TABLOSU altında şeffaf bir şekilde güncelleyebiliriz.

Ardından, üst kökü TOP DÜĞMELERİ'nin altına ve BOTTOM TAB BAR'ın altını da dahil edecek yüksekliğe ayarlayacağız. ALT TAB BAR içeriğinin altında yer alan Metinlere erişmek için, alttaki eki, ALT TAB BAR'ın yüksekliği olacak şekilde ayarlayacağız.

Girinti olmadan, kaydırıcı içeriği yazacak kadar kaydırmanıza izin vermez. Eklemle, içeriğin ek içeriğe ek olarak "BLANK CONTENT" içeriyor olması gibi. Boş metin, gerçek "içerik" in içine "eklenmiş" - bu yüzden kavramı hatırlıyorum.

1

O contentInset olmadan UIScrollView

yılında dolgu eklemek için kullanılır, bir tablo görünümü şu şekildedir: etki aşağıdaki gibidir

tableView.contentInset = UIEdgeInsets(top: 20, left: 0, bottom: 0, right: 0) 

:

enter image description here

Sonra contentInset set :

enter image description here

Daha iyi görünüyor mu?

Ve ben contentInset'u incelemek için bir blog yazdım, eleştiri kabul edilir.