【问题标题】:Change the position of UIToolBar iOS改变 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 代码,初始化...但什么都没有

标签: ios xcode ios6 uitoolbar


【解决方案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

设置变量或常量

【讨论】:

    猜你喜欢
    • 2015-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-04
    • 2011-11-03
    • 2016-09-02
    • 2011-07-31
    • 1970-01-01
    相关资源
    最近更新 更多