在独立视图中使用时,iOS 8屏幕边缘上的UIBarButton项目
在我的UINavigation栏中添加了一个UIViews的XIB的左,右栏button项目的位置是closures的:
XIB中的视图只是有一个视图控制器的出口,但不是主视图。 它显示通过:
[UIView transitionFromView:self.view toView:self.settingsView duration:0.2 options:UIViewAnimationOptionTransitionFlipFromLeft completion:NULL];
我有另一个更简单的视图,直接绑定到视图控制器的视图属性 – 正如所料 – 看起来很正常。
所有的视图都有自动布局。 约束很好。 我尝试了许多不同的东西,但不能提出修正(或者说是一个理由)。 导航栏和项目只是简单的香草栏button项目,没有任何外观代理等等…
在7.1模拟器中,一切看起来都很正常。
任何人见过这个?
谢谢
[编辑]
我find了一个解决scheme,但不是原因:
如果我而不是
[UIView transitionFromView:self.view toView:self.settingsView duration:0.2 options:UIViewAnimationOptionTransitionFlipFromLeft completion:NULL];
它将新视图添加为UIWindow的子视图,
用这个:
[UIView transitionWithView:self.view duration:0.2 options:UIViewAnimationOptionTransitionFlipFromLeft animations:^{ [self.view addSubview:self.settingsView]; } completion:nil];
它将新视图添加为现有UIViewControllers视图的子视图,一切正常。
我不知道如果这个错误和UINavigationBars呈现在一个奇怪的方式,如果包含在一个视图,dynamic地添加到窗口…
不知道UIBarButtonItem
发生了UIBarButtonItem
。 它应该安排自动布局,它必须是很好的工作。 可能是与其他方面的制约冲突或误导之一。
如果你无法解决它。 我还有一个解决scheme给你。 您需要在VC中以编程方式创buildUIBarButtonItem
。
这个想法是在添加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]];
使用下面的代码添加button,它一定会工作。
CGRect frameimg = CGRectMake(0, 0, 60, 30); UIButton *someButton = [[UIButton alloc] initWithFrame:frameimg]; //[someButton setBackgroundImage:image3 forState:UIControlStateNormal]; [someButton setTitle:@"Update" forState:UIControlStateNormal]; [someButton addTarget:self action:@selector(updateProfile) forControlEvents:UIControlEventTouchUpInside]; [someButton setShowsTouchWhenHighlighted:YES]; UIBarButtonItem *menuButton =[[UIBarButtonItem alloc] initWithCustomView:someButton]; self.navigationItem.rightBarButtonItem = menuButton;
这个问题在layoutMargins中 。
看起来像你的UINavigationBar
有零余量。 每边应该有8分。
- 从UITableView播放video
- 使用AVAssetWriter录制和播放audio
- 我怎样才能使一个单元格移动,但不能在UITableView中删除?
- Swift 3:Transfer Utility enumerateToAssignBlocks方法签名
- 错误域= NSURLErrorDomain代码= -1017“操作不能
- Google Maps Javascript API不响应iOS 10中的触摸事件
- 几个小部件使用XCode Storyboard(或“做错了”)?
- 奇怪的问题:UITableViewCell不会检测到触摸,虽然它是配件视图
- 为UIView设置Alpha是UIScrollVIew的子视图,速度非常慢