我很新的编程和客观的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
感谢您的回答。我已经试过了,但把它放在“ - (void)viewDidLoad”部分。那是放正确的地方吗? – 2013-04-28 18:09:37
是的,这是正确的地方。 – DRP 2013-04-28 18:21:12
好吧,它不起作用。我对于发生了什么问题感到非常困惑。不管怎么说,还是要谢谢你。 – 2013-04-28 18:33:23