iphone - 在编辑模式下自定义 UIViewController 中的创建文件夹按钮

标签 iphone ios uiviewcontroller uitableview

我有一个应用程序,我想在它处于编辑模式时自定义创建文件夹按钮。

我使用了以下代码来做到这一点:

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];

但我无法删除创建新文件夹按钮中的加号,应用程序看起来像这样

enter image description here

如何删除加号?

最佳答案

在实现代码时,您只需像 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];

输出是

enter image description here

我建议您使用 UIButton 并设置为 UIbarButtonItemCustomView 来完成此任务:-

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/

相关文章:

java - 从 Java 学习 iPhone 编程的最佳方法是什么?

iphone - 将 CGAffineTransform 应用于 CGPath

ios - Facebook 应用程序。 Iphone 应用商店 ID 无效

ios - 在 TableView 上显示和打开保存的文件

ios - 将数据从 TableView 传递到 View Controller

objective-c - 在 UITabBarController 中为 Xcode Storyboard Segue 设置标识符,并获取指向其 View Controller 的指针

ios - 点击按钮出现错误: unrecognized selector sent to instance - IOS Swift 3

ios - ARKit - SCNNode 连续运动

ios7 presentviewcontroller 无法设置框架

ios - 点击 map View 上的标记时显示新的 View Controller ?