1

私は iOS の初心者で、ニュースに基づいてアプリケーションを開発しようとしています。

私のアプリケーションには、ニュースのタイトルとニュースの画像を表示するテーブル ビューコントローラーであるルート ビュー コントローラーがあります。ユーザーがテーブル セルをクリックすると、より詳細でスクロール可能な別のビュー コントローラーが表示されます。

View Controllerでは、ユーザーは Facebook と Twitter でニュースを共有できるため、少なくとも 2 つのボタンが表示されます。私がやりたいことは、ユーザーが上にスクロールしたときにこれら 2 つのボタンを表示することです。ユーザーが下にスクロールすると、それらを非表示にしたい。Pulse Newsのようなものがあります。私はすでにScroll View デリゲート メソッドを見てきましたが、うまくいきませんでした。どうすればやりたいことを達成できますか?

前もって感謝します。

4

2 に答える 2

1

スクロール位置に合わせて、スクロールしたい位置にボタンを作成します。

  • スクロールビューの起点 x :scroll.frame.origin.x;
  • scrollview の原点 y :scroll.frame.origin.y;
  • スクロールビューの高さ:scroll.frame.size.height;
  • スクロールビューの幅:scroll.frame.size.width;

これで、スクロール ビューに好きなようにボタンを配置できます。

button = [[UIButton alloc] initWithFrame:CGRectMake(x,y,x1,y1);
于 2012-09-05T16:35:20.990 に答える
0

動作コードで更新:ボタンがページの外にスクロールする以外は、ボタンが表示されないようにします

スクロールビューのデリゲートを見たと言っていましたが、これはこの問題を解決する方法です。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 でビュー階層がどのように見えるか ここに画像の説明を入力

于 2012-07-25T12:33:01.650 に答える