動作コードで更新:ボタンがページの外にスクロールする以外は、ボタンが表示されないようにします
スクロールビューのデリゲートを見たと言っていましたが、これはこの問題を解決する方法です。Pulse を見ると、唯一のトリッキーなアクションは下にスクロールするときです。これは、UIToolbars のように見えるものが消えるときです。必要な最も重要なことは、iPhone の表示画面の一番下と一番上にある UIView から継承するものです。これにより、ユーザーが下または上にスクロールしたときに contentoffset に値が設定されます。
他のすべてのアクションにより、それらがすっごく表示されます Pulse はおそらくこのようなことをしました。
#import <UIKit/UIKit.h>
@interface C1ViewController : UIViewController
{
CGPoint _y;
}
@property (weak, nonatomic) IBOutlet UIScrollView *scroller;
@property (weak, nonatomic) IBOutlet UIToolbar *toolbar;
@end
#import "C1ViewController.h"
@interface C1ViewController ()
@end
@implementation C1ViewController
@synthesize scroller = _scroller;
@synthesize toolbar = _toolbar;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.scroller.contentSize = CGSizeMake(self.scroller.frame.size.width, self.scroller.frame.size.height + 100);
self.toolbar.hidden = TRUE;
_y = [self.scroller contentOffset];
}
// this method is getting deprecated, so don't worry about it to much
// but don't forget to dealloc...which I did not include.
- (void)viewDidUnload
{
[self setScroller:nil];
[self setToolbar:nil];
[super viewDidUnload];
// Release any retained subviews of the main view.
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
NSLog(@"content offset %f", self.scroller.contentOffset);
if (_y.y < [self.scroller contentOffset].y){
self.toolbar.hidden = TRUE;
}
else {
self.toolbar.hidden = FALSE;
}
}
@end
Interface Builder でビュー階層がどのように見えるか