2

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

viewDidLoad我的范围内,viewController我正在尝试设置框架。

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

但什么也没有发生。

有没有不同的方法可以做到这一点?

谢谢

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

2 回答 2

3

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

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

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

于 2012-10-03T04:36:34.600 回答
0

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设置变量或常量

于 2017-08-23T11:58:09.767 回答