- 我正在尝试将分段控件添加到下面的 UIToolbar 中,但是当我尝试在 Storyboard 中将其拖动时,它会替换我的表格视图。
- 另外,当我尝试将 UIBarButton 添加到我的工具栏时,它会将我的原型单元格向下推......我的视图层次结构是否错误?
- 无论如何,当我添加 UIBarButton 项目时,在模拟器中,工具栏不是我在导航控制检查器中设置的黑色透明。那是怎么回事?
谢谢!
谢谢!
要使用界面生成器在工具栏中创建分段控制元素,可以使用以下提示
1)在导航控制器中创建分段控制栏按钮项:
2) 将Bar Button Item拖动到 Navigation Item
3)然后你应该得到以下结构
4)现在您可以选择分段控件来设置其属性
1 - 以编程方式进行。您需要先为 UIToolbar 分配一个框架,然后您可以在其中添加元素(segmentedControl)。我建议尽管使用UIBarButtonItems
,这基本上是相同的。
要将其固定在底部,请尝试这样做:
#define SCREEN_FRAME [[UIScreen mainScreen] applicationFrame]
CGRect frame = CGRectMake(0, [[UIScreen mainScreen] bounds].size.height - 44, [[UIScreen mainScreen] bounds].size.width, 44);
UIToolbar *toolBar = [[UIToolbar alloc]initWithFrame:frame];
toolBar.frame = CGRectMake(0,self.view.frame.size.height-toolBar.frame.size.height,SCREEN_FRAME.size.width,toolBar.frame.size.height);
//Setting up the items
UIBarButtonItem *first = [[[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"image.png"] style:UIBarButtonItemStylePlain target:self action:@selector(yourAction:)] autorelease];
UIBarButtonItem *second = [[[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"image.png"] style:UIBarButtonItemStylePlain target:self action:@selector(yourAction:)] autorelease];
//Creating an array with the items
NSArray *items = [NSArray arrayWithObjects:first,second, nil];
//Assigning the array to the toolBar
[toolBar setItems: items];
然后你可以设置它的风格
mytoolbar.barStyle = UIBarStyleBlack;
2 - 同上,取景。
3 - 您需要将您的 navigationController 样式设置为黑色。
使用self.navigationController.navigationBar.style = UIBarStyleBlack
;,或者在 IB 中选择按钮并从 Inspector 中将 Tint 或 Style 设置为您想要的任何内容。
还要检查这个问题
我想这里的某个地方有一个导航视图控制器。他们有自己的工具栏,但它是隐藏的和空的。您看到的工具栏只是一个工具栏的模拟,目的是让您编辑 UI。
因此,要使用情节提要执行此操作,请不要将分段控件添加到模拟工具栏,创建一个新工具栏并将其添加到控制器中可用的视图树中(作为表视图的同级)并创建一个 IBOutlet 以引用它。然后在您的 viewDidLoad 方法中,将工具栏中的项目分配给视图控制器已经创建的工具栏。
在此示例中,我在视图控制器上创建了一个名为(巧妙地)工具栏的属性:
@property (nonatomic, retain) IBOutlet UIToolbar toolbar;
在我的视图控制器的实现中,我手动分配了工具栏项:
-(void)viewDidAppear:(BOOL)animated
{
[self setToolbarItems:self.toolbar.items animated:NO];
[self.navigationController setToolbarHidden:NO animated:YES];
}
当视图控制器弹出时,您需要隐藏工具栏,例如在调用视图控制器中:
-(void)viewWillAppear:(BOOL)animated
{
[self.navigationController setToolbarHidden:YES animated:YES];
}
当然,假设你想隐藏它。
我通过将 UISegmentedController 放在 Bar Button Item 中来做到这一点。
将工具栏添加到 UINavigationController 窗口,然后在 ViewController 屏幕上启用此工具栏的显示。
将一个条形按钮拖入 ViewController 屏幕上的工具栏,然后将一个 UISegmentedController 拖入其中(将按钮的大小调整为屏幕的整个宽度)
要将其全部连接起来,从 UISegmentedController 按住 ctrl 并拖动到相应的 .h 文件,从“引用插座”拖动到黄色视图控制器图标(使用相同的变量名),然后从“ValueChanged”拖动到黄色图标(选择要在新选择上调用的控制器上的方法)。
这一切似乎都按预期工作。(如果你不能在控制器上选择一个段来设置一个初始值,你没有按照上面的描述连接参考插座。这让我难了一会儿。)