2011-07-20 24 views
0

在我的viewController之一,我有一个滚动视图,其中包含一个UIView和的UIImageView,UITextView的等在这里滚动视图就是我写的代码:如何通过UIScrollView工作?

overViewScroll = [[UIScrollView alloc]initWithFrame:CGRectMake(0,0,screenFrame.size.width,screenFrame.size.height)]; 
     [overViewScroll setCanCancelContentTouches:NO]; 
     overViewScroll.pagingEnabled = YES; 
     overViewScroll.clipsToBounds = NO; 
     overViewScroll.indicatorStyle = UIScrollViewIndicatorStyleWhite; 
     [overViewScroll setContentSize:CGSizeMake(screenFrame.size.width, screenFrame.size.height-25)]; 
     [overViewScroll setScrollEnabled:YES]; 
     [overViewScroll setAlwaysBounceVertical:YES]; 
     [overViewScroll setShowsVerticalScrollIndicator:YES]; 

UIView * completeView = [[UIView alloc]initWithFrame:CGRectMake(0,0,screenFrame.size.width,screenFrame.size.height)]; 
    UILabel* heading1 = [[UILabel alloc]initWithFrame:CGRectMake(5,0,310,30)]; 
    heading1.text = name; 
    heading1.backgroundColor = [UIColor clearColor]; 
    UIFont * headingFont = [UIFont fontWithName:@"HelVetica" size:15]; 
    heading1.font = headingFont; 
    [completeView addSubview:heading1]; 
    //NSSet * imageString = [projectHeroData valueForKey:@"imageURL"]; 
    NSString * urlString = @""; 
    NSURL * url = [NSURL URLWithString:urlString]; 
    NSData * imageData = [NSData dataWithContentsOfURL:url]; 
    UIImage * projImage = [[UIImage alloc]initWithData:imageData]; 
    UIImageView * imgView = [[UIImageView alloc]initWithFrame:CGRectMake(screenFrame.size.width/70,screenFrame.size.height/50,screenFrame.size.width-((screenFrame.size.width/70)*2),screenFrame.size.height/3)]; 
    imgView.image = projImage; 
    imgView.backgroundColor = [UIColor blueColor]; 
    [completeView addSubview:imgView]; 

    UILabel * abstract = [[UILabel alloc]initWithFrame:CGRectMake(screenFrame.size.width/41,screenFrame.size.height/31 + screenFrame.size.height/3,screenFrame.size.width/4,screenFrame.size.height/30)]; 
    abstract.text = @"Abstract-"; 
    abstract.font = [UIFont boldSystemFontOfSize:fontSize]; 
    abstract.backgroundColor = [UIColor clearColor]; 
    [completeView addSubview:abstract]; 

    UILabel * lastUpdated = [[UILabel alloc]initWithFrame:CGRectMake(screenFrame.size.width/41 + screenFrame.size.width/5,screenFrame.size.height/31 + screenFrame.size.height/3,screenFrame.size.width-screenFrame.size.width/4,screenFrame.size.height/30)]; 
    NSString * string = modDate ; 
    NSString * updated = [NSString stringWithFormat:@"Last Updated-%@",string]; 
    lastUpdated.text = updated; 
    lastUpdated.backgroundColor = [UIColor clearColor]; 
    lastUpdated.font = [UIFont boldSystemFontOfSize:fontSize]; 
    [completeView addSubview:lastUpdated]; 

    UITextView * textView2 = [[UITextView alloc]initWithFrame:CGRectMake(screenFrame.size.width/70,(screenFrame.size.height/31 + screenFrame.size.height/3)+screenFrame.size.height/30,screenFrame.size.width-screenFrame.size.width/70*2,screenFrame.size.height)]; 
    textView2.text = abst; 
    textView2.editable = NO; 
    textView2.font = [UIFont systemFontOfSize:fontSize]; 
    textView2.backgroundColor = [UIColor clearColor]; 
    [completeView addSubview:textView2]; 

    [overViewScroll addSubview:completeView]; 
    [self.view addSubview:overViewScroll]; 

一切addded到的UIView和添加的UIView到UIScrollView。 但问题是它的行为怪异,图像不是一直滚动,Textview中的文本自身正在滚动。 请帮忙!!

+0

更改您的滚动视图的内容 – ajay

+0

我该怎么做才能增加它或减少它? – Ashutosh

+0

当你想要滚动然后scrollview contentsize必须大于它的subview.means在你的情况下uiview框架大小小于uiscrollview – ajay

回答

0

更改scrollview.your UIview大小和uiscrollview大小的内容相同,如果UIScrollview内容大于其子视图大小,则会发生滚动更改行[overViewScroll setContentSize:CGSizeMake(screenFrame.size.width,screenFrame。 size.height-25)];像这样[overViewScroll setContentSize:CGSizeMake(screenFrame.size.width,(screenFrame.size.height-25)* 2)];它将允许你水平滚动默认情况下,textview具有scroll属性的self。

+0

好吧,如果我不想让textView有水平滚动视图,不想让它滚动本身而不是滚动整个视图。我该怎么做/ – Ashutosh

+0

确定了.....谢谢, – Ashutosh

0
overViewScroll =[[UIScrollViewalloc]initWithFrame:CGRectMake(0,0,screenFrame.size.width,screenFrame.size.height)]; 
    [overViewScroll setCanCancelContentTouches:NO]; 
    overViewScroll.pagingEnabled = YES; 
    overViewScroll.clipsToBounds = NO; 
    overViewScroll.indicatorStyle = UIScrollViewIndicatorStyleWhite; 
    [overViewScroll setContentSize:CGSizeMake(320,600)]; 
    [overViewScroll setScrollEnabled:YES]; 
    [overViewScroll setAlwaysBounceVertical:YES]; 
    [overViewScroll setShowsVerticalScrollIndicator:YES]; 

UIView * completeView = [[UIView alloc]initWithFrame:CGRectMake(0,0,screenFrame.size.width,screenFrame.size.height)]; 
UILabel* heading1 = [[UILabel alloc]initWithFrame:CGRectMake(5,0,310,30)]; 
heading1.text = name; 
heading1.backgroundColor = [UIColor clearColor]; 
UIFont * headingFont = [UIFont fontWithName:@"HelVetica" size:15]; 
heading1.font = headingFont; 
[completeView addSubview:heading1]; 
//NSSet * imageString = [projectHeroData valueForKey:@"imageURL"]; 
NSString * urlString = @""; 
NSURL * url = [NSURL URLWithString:urlString]; 
NSData * imageData = [NSData dataWithContentsOfURL:url]; 
UIImage * projImage = [[UIImage alloc]initWithData:imageData]; 
UIImageView * imgView = [[UIImageView alloc]initWithFrame:CGRectMake(screenFrame.size.width/70,screenFrame.size.height/50,screenFrame.size.width-((screenFrame.size.width/70)*2),screenFrame.size.height/3)]; 
imgView.image = projImage; 
imgView.backgroundColor = [UIColor blueColor]; 
[completeView addSubview:imgView]; 

UILabel * abstract = [[UILabel alloc]initWithFrame:CGRectMake(screenFrame.size.width/41,screenFrame.size.height/31 + screenFrame.size.height/3,screenFrame.size.width/4,screenFrame.size.height/30)]; 
abstract.text = @"Abstract-"; 
abstract.font = [UIFont boldSystemFontOfSize:fontSize]; 
abstract.backgroundColor = [UIColor clearColor]; 
[completeView addSubview:abstract]; 

UILabel * lastUpdated = [[UILabel alloc]initWithFrame:CGRectMake(screenFrame.size.width/41 + screenFrame.size.width/5,screenFrame.size.height/31 + screenFrame.size.height/3,screenFrame.size.width-screenFrame.size.width/4,screenFrame.size.height/30)]; 
NSString * string = modDate ; 
NSString * updated = [NSString stringWithFormat:@"Last Updated-%@",string]; 
lastUpdated.text = updated; 
lastUpdated.backgroundColor = [UIColor clearColor]; 
lastUpdated.font = [UIFont boldSystemFontOfSize:fontSize]; 
[completeView addSubview:lastUpdated]; 

UITextView * textView2 = [[UITextView alloc]initWithFrame:CGRectMake(screenFrame.size.width/70,(screenFrame.size.height/31 + screenFrame.size.height/3)+screenFrame.size.height/30,screenFrame.size.width-screenFrame.size.width/70*2,screenFrame.size.height)]; 
textView2.text = abst; 
textView2.editable = NO; 
textView2.font = [UIFont systemFontOfSize:fontSize]; 
textView2.backgroundColor = [UIColor clearColor]; 
[completeView addSubview:textView2]; 

[overViewScroll addSubview:completeView]; 
[self.view addSubview:overViewScroll]; 

试试这个,它会工作。另一种方法是使用界面构建器并选择scoll视图并将其他标签图像视图拖放到滚动视图上。