2013-04-28 39 views
0

我很新的编程和客观的C,所以你必须对我容易。我相信应用中的一些代码可能是不必要的。我搜索谷歌和StackOverflow的答案,但没有解决方案为我工作,要么是因为他们不是正确的解决方案,或者我只是误解了答案。添加一个UIButton到一个UIScrollView停止滚动

问题是,当我添加一个很长的图像并且我想垂直滚动时,它最初拒绝滚动,直到我更改名为“Vertical Space(-1678)”的“约束” - 滚动视图 - 图像查看 - Ruler pic.png“为0,原因不明。我甚至不明白为什么它默认为-1678。

无论如何,它直到我在故事板中添加一个UIButton(我后来希望添加一个模式“动作segue”,以便它会转到另一个视图),它完美地工作。当我添加UIButton时,它将不会在模拟器中滚动。

我想我必须做错了什么,因为我只输入了一行代码(声明它)关于按钮,或者我可能需要添加一些代码才能滚动。我不知道!如果您需要更多信息以帮助我将很乐意提供。我厌倦了试图让它工作。提前致谢。

ViewController.h

#import <UIKit/UIKit.h> 
#import <iAd/iAd.h> 

@interface ViewController : UIViewController <ADBannerViewDelegate, UIScrollViewDelegate> { 

ADBannerView *adView; 
BOOL bannerIsVisible; 
IBOutlet UIScrollView *scrollView; 
IBOutlet UIImageView *imageView; 
IBOutlet UIButton *proVersion; 

} 

@property (nonatomic, assign) BOOL bannerIsVisible; 
@property (nonatomic, retain) IBOutlet UIScrollView *scrollView; 
@property (nonatomic, retain) IBOutlet UIImageView *imageView; 

@end 

ViewController.m

#import "ViewController.h" 

@interface ViewController() 

@end 

@implementation ViewController 

@synthesize bannerIsVisible; 
@synthesize scrollView; 
@synthesize imageView; 

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 

// Hide status bar: 
[[UIApplication sharedApplication] setStatusBarHidden:YES]; 

// iAd: 
adView = [[ADBannerView alloc] initWithFrame:CGRectZero]; 
adView.frame = CGRectOffset(adView.frame, 0, -50.0f); 
[self.view addSubview:adView]; 
adView.delegate=self; 
self.bannerIsVisible=NO; 

} 

-(void)bannerViewDidLoadAd:(ADBannerView *)banner 
{ 
if (!self.bannerIsVisible) { 

    [UIView beginAnimations:@"animateAdBannerOn" context:NULL]; 
    banner.frame = CGRectOffset(banner.frame, 0, 50.0f); 
    [UIView commitAnimations]; 
    self.bannerIsVisible = YES; 

    } 
} 

-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error 
{ 
if (self.bannerIsVisible) { 

    [UIView beginAnimations:@"animateAdBannerOff" context:NULL]; 
    banner.frame = CGRectOffset(banner.frame, 0, -50.0f); 
    [UIView commitAnimations]; 
    self.bannerIsVisible = NO; 

} 
} 

- (void)didReceiveMemoryWarning 
{ 
[super didReceiveMemoryWarning]; 
// Dispose of any resources that can be recreated. 
} 

@end 

回答

0

我张望了一下打并在答案中摆弄了一个例子,我得到了这个代码:

scrollView.contentSize = CGSizeMake(320,2246); 

哪个工作!我花了好几天的时间研究这个,这只是一小段代码。我把它放到viewDidLoad中,它突然滚动。我也不得不打开“AutoLayout”。

0

您将需要设置ScrollViewContentSize,就像这样:

[scrollView setContentSize:CGSizeMake(320, 500)]; 
+0

感谢您的回答。我已经试过了,但把它放在“ - (void)viewDidLoad”部分。那是放正确的地方吗? – 2013-04-28 18:09:37

+0

是的,这是正确的地方。 – DRP 2013-04-28 18:21:12

+0

好吧,它不起作用。我对于发生了什么问题感到非常困惑。不管怎么说,还是要谢谢你。 – 2013-04-28 18:33:23

相关问题