k1t*_*1th 11 iphone objective-c uinavigationbar uiview ios
在我的UINavigation栏中添加了一个带有多个UIViews的XIB,左右栏按钮项的定位是关闭的:
XIB中的视图只是一个视图控制器的出口,但不是主视图.它通过以下方式显示:
[UIView transitionFromView:self.view toView:self.settingsView duration:0.2 options:UIViewAnimationOptionTransitionFlipFromLeft completion:NULL];
Run Code Online (Sandbox Code Playgroud)
我有另一个更简单的视图,它直接绑定到视图控制器的视图属性 - 正如预期的那样 - 看起来很正常.
所有视图都有自动布局.约束很好.我尝试了很多不同的东西,但无法提出修复(或者说是理由).导航栏和项目只是普通的香草酒吧按钮项目,没有任何像外观代理等...
在7.1 sim中,一切看起来都很正常.
有人见过这个吗?
谢谢
[编辑]
我找到了解决方案但不是原因:
如果我而不是
[UIView transitionFromView:self.view toView:self.settingsView duration:0.2 options:UIViewAnimationOptionTransitionFlipFromLeft completion:NULL];
Run Code Online (Sandbox Code Playgroud)
它将新视图添加为UIWindow的子视图,
用这个:
[UIView transitionWithView:self.view duration:0.2 options:UIViewAnimationOptionTransitionFlipFromLeft animations:^{
[self.view addSubview:self.settingsView];
} completion:nil];
Run Code Online (Sandbox Code Playgroud)
它将新视图添加为现有UIViewControllers视图的子视图,一切都很好.
我想知道这个bug和UINavigationBars是否以一种奇怪的方式呈现,如果包含在动态添加到窗口的视图中...
不确定发生了什么事UIBarButtonItem
。它应该通过自动布局进行排列,并且必须运行良好。其中一项约束可能与其他约束发生冲突或被误导。
如果您无法解决它。我还为您提供了另一种解决方案。您需要UIBarButtonItem
在 VC 中以编程方式创建。
这个想法是在添加之前从左右填充分配空间UIBarButtonItem
。
下面的代码将指导您完成此任务。
UIBarButtonItem *leftPadding = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:
UIBarButtonSystemItemFixedSpace target:self action:nil];
[leftPadding setWidth:5]; // Adjust width for padding from left side.
UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:
UIBarButtonSystemItemAdd target:self action:@selector(addButtonTapped:)];
[self.navigationItem setLeftBarButtonItems:@[leftPadding, addButton]];
UIBarButtonItem *rightPadding = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:
UIBarButtonSystemItemFixedSpace target:self action:nil];
[rightPadding setWidth:10]; // Adjust width for padding from right side.
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:
UIBarButtonSystemItemDone target:self action:@selector(doneButtonTapped:)];
[self.navigationItem setRightBarButtonItems:@[rightPadding, doneButton]];
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
831 次 |
最近记录: |