2010-07-31 19 views
6

Aynı anda birden fazla sayfa görüntülemeye çalıştığım UIScrollView, sayfa boyutu UIScrollview 'sınırlarından daha küçük bir sayfa haline getiriliyor. Saatlerce geziyorum ama kimse iyi bir çözüm bulmuyor.Birden çok sayfa görülebilir veya daha küçük sayfa boyutlarına sahip UIScrollView

UIScrollview boyutlarını tek sayfanın olmasını istediğim boyuta getirerek, alt görünümü kırpmayı kapatarak ve tüm musluklarını UIScrollview'a aktaran bir kaba yerleştirerek görsel olarak doğru etkiyi elde edebiliyorum. Bununla ilgili sorun, Y sayfalarının görünür olmasıyla, son sayfayı en son sayfadan Y-1 boş sayfalara bırakarak son sayfaya kadar sola kaymanızı sağlar. Herkes bu konuda bir yol biliyor mu, yoksa başka bir problemle mi?

+0

Kullanıcı sayfalarınızda gezinirken, daha küçük bir miktarda kaydırıp ardından scrollView 'width? İlk önce sayfa 1,2,3 ve tokat 2,3,4'ten sonra mı? Veya tokattan sonra 4,5,6 gösterilecek mi? – tonklon

+0

Sadece normal bir kaydırma görünümü gibi davranmak istiyorum, kaydırma parmak hareketleriyle 1: 1 olmalıdır, ancak parmak kaldırıldığında sayfalara kilitlenecektir. – Seventoes

cevap

6

sağ ucuna için, son sayfaya ulaşmadan önce kaydırma görünümü Çağrıyı durdurmak olacağını yeterince kaydırma görünümün contentSize mülkiyet genişliğini azaltmayı deneyin. Sol taraf için, her sayfanın frame.origin.x özelliğini aynı miktarda azaltın. İlk birkaç sayfa kaydırma görünümünde negatif bir x konumuna sahip olacaktır.

Esas olarak, kaydırma görünümünü oluşturmak, içeriğin yalnızca sayfa 2 ila ikinci sayfa olduğunu düşünür. Örneğin

:

// scrollView has been initialized and added to the view hierarchy according to the link in @richard's answer: 
// http://blog.proculo.de/archives/180-Paging-enabled-UIScrollView-With-Previews.html 

CGFloat pageNum=10; 
CGFloat pageWidth=scrollView.frame.size.width; 
CGFloat pageHeight=scrollView.frame.size.height; 
CGFloat visibleWidth=320; 


// Set scrollView contentSize and create pages: 

CGFloat leftShift=floor(((visibleWidth-pageWidth)/2)/pageWidth)*pageWidth; 
CGFloat contentSizeReduction=2*leftShift; 

scrollView.contentSize = CGSizeMake(pageNum*pageWidth-contentSizeReduction,pageHeight); 

for(int i=0; i<pageNum; i++) { 
    CGRect pageFrame = CGRectMake(i*pageWidth-leftShift, 0, pageWidth, pageHeight); 
    UIView *pageView = [[[UIView alloc] initWithFrame:pageFrame] autorelease]; 

    // Initialize the page view for the current index here 

    [scrollView addSubview:pageView]; 
} 

kodunda yazım hatası bakma. Bunu henüz denemedim.

Çalışırsa bana bildirin.

7

Safari mobil tarayıcısında önizleme gibi bir şeye ihtiyacınız olduğunu düşünüyorum. İşte bazı örnek kod ile bir web sitesi. Preview Sample Code

İlgili konular