我有一个应用程序,我想在它处于编辑模式时自定义创建文件夹按钮。
我使用了以下代码来做到这一点:
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];
但我无法删除创建新文件夹按钮中的加号,应用程序看起来像这样
如何删除加号?
最佳答案
在实现代码时,您只需像 Bellow 一样使用 initWithTitle
定义 UIBarButtonItem
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
并设置为 UIbarButtonItem
的 CustomView
来完成此任务:-
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];
}
}
关于iphone - 在编辑模式下自定义 UIViewController 中的创建文件夹按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18716079/