2011-05-18 69 views
5

我創建了一個包含頁面控件的uiscrollview,它從資源包中加載圖像..所有的東西都能正常工作good.im能夠滾動瀏覽不同的圖像..問題是如果我點擊相應的pagecontrol(點),即時通訊無法定位到對應的圖像....可以ü人幫助我下面是代碼...下面的代碼工作完全正常uiscrollview中的頁面控制

// Email.h 

@interface Email : UIViewController<UIScrollViewDelegate> 
{ 
    UIPageControl *pageControl; 
    UIScrollView *scroller; 
} 

@property (nonatomic,retain)IBOutlet UIPageControl *pageControl; 
@property (nonatomic,retain)IBOutlet UIScrollView *scroller; 

-(IBAction)clickPageControl:(id)sender; 

@end 


// Email.m 

@implementation Email 
@synthesize pageControl,scroller; 

-(IBAction)clickPageControl:(id)sender 
{ 
    int page=pageControl.currentPage; 
    CGRect frame=scroller.frame; 
    frame.origin.x=frame.size.width=page; 
    frame.origin.y=0; 
    [scroller scrollRectToVisible:frame animated:YES]; 
} 

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView 
{ 
    int page = scrollView.contentOffset.x/scrollView.frame.size.width; 
    pageControl.currentPage=page; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    [email protected]"Press Photos"; 
    for (int i=1; i<10; i++) 
    { 
     UIImageView *images=[[UIImageView alloc]initWithImage: 
     [UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg",i]]]; 
     images.frame=CGRectMake((i-1)*320, 0, 320, 460); 
     [scroller addSubview:images]; 
     [images release]; 
    } 
    scroller.delegate=self; 
    scroller.contentSize=CGSizeMake(320*9, 460); 
    scroller.pagingEnabled=YES; 

    pageControl.numberOfPages=9; 
    pageControl.currentPage=0; 
} 
+1

你應該最終使用代碼標籤來顯示你的代碼,使其可讀。 – CharlieMezak 2011-05-18 13:13:58

回答

4
frame.origin.x=frame.size.width=page; 

應該

frame.origin.x = frame.size.width * page; 
+0

謝謝,完全工作...我還有一個query.ive得到了8個圖像(意味着8個點)..如果即時點擊第五個點(pagecontrol)我想第五個圖像在scrollview中加載...不是每個圖像加載,直到滾動視圖中看到第5個圖像...提前致謝 – kingston 2011-05-19 04:57:59

+0

UIPageControl不支持直接跳轉到頁面。如果你真的想要它,請考慮在頁面控件中添加一個'UITapRecognizer'並處理這些水龍頭。根據框架和抽頭位置判斷用戶感興趣的頁面並相應地更改頁面。 – 2011-05-19 06:50:13