我有一个应用程序,我想在编辑模式下自定义创建文件夹按钮。
我使用以下代码来执行此操作:
UIBarButtonItem * addButton;
addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(createFolder)];
[addButton setTitleTextAttributes:dictionaryOfTitleTextAttributes forState:UIControlStateNormal];
[addButton setBackgroundImage:[[UIImage imageWithCGImage:[UIImage imageNamed:@"List/newfolder-normal.png"].CGImage scale:2 orientation:UIImageOrientationDown] resizableImageWithCapInsets:UIEdgeInsetsMake(4, 14, 4, 14)] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[addButton setBackgroundImage:[[UIImage imageWithCGImage:[UIImage imageNamed:@"List/newfolder-touched.png"].CGImage scale:2 orientation:UIImageOrientationDown] resizableImageWithCapInsets:UIEdgeInsetsMake(4,14,4,14)] forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault];
但我无法删除创建新文件夹按钮中的加号,而应用程序似乎是这样
如何删除加号?
答案 0 :(得分:2)
如果你实现代码,你只需使用像{Bellow
这样的UIBarButtonItem
来定义initWithTitle
addButton = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStyleBordered target:self action:@selector(createFolder:)];
示例代码: -
UIBarButtonItem * addButton;
addButton = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStyleBordered target:self action:@selector(createFolder:)];
//[addButton setTitleTextAttributes:di forState:UIControlStateNormal];
[addButton setBackgroundImage:[[UIImage imageWithCGImage:[UIImage imageNamed:@"redHeart.png"].CGImage scale:2 orientation:UIImageOrientationDown] resizableImageWithCapInsets:UIEdgeInsetsMake(4, 14, 4, 14)] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[addButton setBackgroundImage:[[UIImage imageWithCGImage:[UIImage imageNamed:@"blueheart.png"].CGImage scale:2 orientation:UIImageOrientationDown] resizableImageWithCapInsets:UIEdgeInsetsMake(4,14,4,14)] forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault];
输出
我建议您使用UIButton
并设置为CustomView
UIbarButtonItem
来执行此任务: -
UIImage* yourImage = [UIImage imageNamed:@"newfolder-normal.png.png"];
CGRect frameimg = CGRectMake(0, 0, yourImage.size.width, yourImage.size.height);
someButton = [[UIButton alloc] initWithFrame:frameimg];
someButton.tag=1;
[someButton setBackgroundImage:yourImage forState:UIControlStateNormal];
[someButton addTarget:self action:@selector(createFolder:)
forControlEvents:UIControlEventTouchUpInside];
[someButton setShowsTouchWhenHighlighted:YES];
addButton =[[UIBarButtonItem alloc] initWithCustomView:someButton];
self.navigationItem.leftBarbuttonITem=addButton;
[someButton release];
-(void)createFolder:(id)sender
{
UIButton *selectedButton = (UIButton *)sender;
//If checked, uncheck and visa versa
[selectedButton setSelected:![selectedButton isSelected]];
if([selectedButton isSelected])
{
UIImage* yourImage = [UIImage imageNamed:@"List/newfolder-touched.png"];
[selectedButton setBackgroundImage:yourImage forState:UIControlStateNormal];
}
else
{
UIImage* yourImage = [UIImage imageNamed:@"List/newfolder-normal.png"];
[selectedButton setBackgroundImage:yourImage forState:UIControlStateNormal];
}
}