UIScrollView 中的 UIToolbar 修复了 UIViewController 作为子视图滚动问题

Posted

技术标签:

【中文标题】UIScrollView 中的 UIToolbar 修复了 UIViewController 作为子视图滚动问题【英文标题】:UIToolbar in UIScrollView fixed with UIViewController as scrolling as subview problem 【发布时间】:2010-02-07 00:23:21 【问题描述】:

我遇到了一个大问题,我不知道如何解决......

我的 UIToolbar 应该是固定在屏幕底部的,在整个屏幕上显示为缩放。

在我的情况下,我有:

一个 UIViewController

使用 UIScrollView 滚动图像。

所以我需要屏幕底部的工具栏,但它取代了图像滚动并占据了整个屏幕。当我从 iphone Xcode 的 V2 移动到 V3 时发生这种情况..在它显示正常之前...

我将简要解释一下我是如何初始化这些东西的: 在 h 文件中 UIScrollView *myScroll; 在我拥有的 .M 文件中 UIToolbar *工具栏;

然后在 (void)viewDidLoad

toolbar = [UIToolbar new];
toolbar.barStyle = UIBarStyleDefault;

toolbar.frame = CGRectMake(0, 410, 320, 50);
------------------------

myScroll.contentSize = CGSizeMake(myImage.frame.size.width, myImage.frame.size.height);

myScroll.maximumZoomScale = 4.0;
myScroll.minimumZoomScale = 1;

myScroll.clipsToBounds = YES;
CGRect frame2 = myImage.frame;

frame2.origin.y=frame2.origin.y+40;
myScroll.contentOffset=frame2.origin;



myScroll.delegate = self;

[myScroll addSubview:myImage];  

    [myScroll.superview addSubview:toolbar];    

所以工具栏上设置的框架不起作用......它会在整个屏幕上设置自己......

我不希望扩展 UIScrollView,因为我想要一些与此类功能相关的按钮..

我想要实现的功能是拥有可缩放、可平移的照片和一些选项,用于评论、投票和上一页。 next etc..从工具栏alt text http://www.freeimagehosting.net/image.php?ef28ce0bb4.jpg

这是一个预览:

【问题讨论】:

【参考方案1】:

最简单的方法是使用 Interface Builder 来设置您的工具栏。

只需将 UIToolbar 拖放到您的窗口中并将其连接到您的视图控制器。以下是您以编程方式设置按钮的方法,但您也可以轻松地将它们添加到 IB 中并将它们连接到那里。

- (void)viewDidLoad 
    UIBarButtonItem *addButton = [[UIBarButtonItem alloc] 
                              initWithBarButtonSystemItem:UIBarButtonSystemItemAdd 
                              target:self 
                              action:@selector(insertNewObject)];

    NSArray *items = [NSArray arrayWithObject:addButton];
    self.toolbar.items = items;

【讨论】:

我会试试的,但我担心它会搞砸 UIscrollview 我试过了,它并没有以某种方式显示工具栏...仅在界面构建器中...我正在做一件事来隐藏 TAB 栏和导航栏...当我显示视图... [self.mynav.view setNeedsLayout]; [self.mynav setNavigationBarHidden:YES 动画:YES]; appDelegate.tabBarController.hidesBottomBarWhenPushed = YES; 如果不查看您的 nib 文件就很难调试它。您的标签栏是否可能位于工具栏的顶部?

以上是关于UIScrollView 中的 UIToolbar 修复了 UIViewController 作为子视图滚动问题的主要内容,如果未能解决你的问题,请参考以下文章

UIScrollView里面的UIWebView上面的UIToolbar

调整 UIViewController 中的视图大小

UIScrollView 水平和垂直滚动的策略

未检测到 UIToolBar 上 UIToolBar 上的模态视图中的 UIButton 触摸未检测到

如何使 UINavigationController 中的 UIToolbar 更高?

UIToolbar 中的 UISearchBar 不会显示取消按钮