1

我是 iOS 的新手,我正在尝试开发基于新闻的应用程序。

在我的应用程序中,我有一个根视图控制器,它是一个表视图控制器,用于显示新闻的标题和新闻的图像。好吧,当用户单击表格单元格时,会显示另一个视图控制器,它更详细且可滚动。

View Controller中,用户可以在 Facebook 和 Twitter 上分享新闻,这样我至少有两个按钮。我想要做的是在用户向上滚动时显示这两个按钮。当用户向下滚动时,我想让它们消失。Pulse News中有类似的东西。我已经看过Scroll View 委托方法,但我没有让它工作。我怎样才能完成我想做的事情?

提前致谢。

4

2 回答 2

1

根据滚动位置在您想要滚动的位置创建按钮。

  • 滚动视图的原点 x:scroll.frame.origin.x;
  • 滚动视图的原点 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 回答