改变 UIToolBar iOS 的位置

Posted

技术标签:

【中文标题】改变 UIToolBar iOS 的位置【英文标题】:Change the position of UIToolBar iOS 【发布时间】:2012-10-03 03:41:12 【问题描述】:

我正在通过 Interface Builder 创建一个 UIToolBar。 我将其设置为 IBOutlet。

在我的viewControllerviewDidLoad 内,我正在尝试设置框架。

我想要实现的是修改它的位置,以便它可以动画。

但是什么也没发生。

有没有其他方法可以做到这一点?

谢谢

myOwnToolBar.frame = CGRectMake(0, 0, 100, 55);
    [self.view addSubview:myOwnToolBar];

【问题讨论】:

我可以让它以编程方式添加工具栏。但是,如果我通过 IB 进行操作,我将无法移动它。我试图在 viewDidLoad 中添加 .frame 代码,初始化...但什么都没有 【参考方案1】:

如果您尝试以编程方式创建UIToolBar,则不能只设置框架而不分配和初始化工具栏。试试这个:

myOwnToolBar = [[UIToolBar alloc] initWithFrame:CGRectMake(0, 0, 100, 44)];
[self.view addSubview:myOwnToolBar];

当您创建 IBOutlet 时,会隐含一个 alloc/init 调用。您只需要记住,这不适用于在代码中创建的对象。

【讨论】:

当我通过界面生成器创建时,我试图访问 self.myOwnToolBar.fram =... 但它不起作用。我在 viewDidLoad 中这样做 这是一种简单的方法。感谢 +1!【参考方案2】:

swift 3 的小技巧:

override func viewDidLoad() 
    super.viewDidLoad()

    UIView.animate(withDuration: 0.3)  
        self.navigationController?.toolbar?.transform = CGAffineTransform(translationX: 0, y: -216)
    

Objective-c 示例:

- (void)viewDidLoad 
    [super viewDidLoad];

    [UIView animateWithDuration:0.3 animations:^
        self.navigationController.toolbar.transform = CGAffineTransformMakeTranslation(0, -216);
    ];

动画持续时间x-offsety-offset

设置变量或常量

【讨论】:

以上是关于改变 UIToolBar iOS 的位置的主要内容,如果未能解决你的问题,请参考以下文章

iOS 7 的 UIToolbar 中 UIBarButtonItems 的垂直位置不正确

顶部/底部位置的 UIToolbar 外观界面

如何避免 UIToolbar 的 tintColor 改变 UIButtonItem 按钮颜色?

在 UIToolBar 上居中按钮

以foursquare方式自定义UIToolBar

UIToolBar 高度不会改变