【问题标题】:Custom background for default system items默认系统项目的自定义背景
【发布时间】:2013-03-18 11:56:05
【问题描述】:

我想使用默认的条形按钮项目,例如

UIBarButtonItem *editFavoritesButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:self action:@selector(startEndEditing:)];

问题是我想改变这些按钮的背景但是

[editFavoritesButton setBackgroundImage:[UIImage imageNamed:@"barbuttonPlain.png"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

在这种情况下并不奏效。

更新:

这个想法不是创建自定义按钮,因为您需要处理这种情况下的翻译。另一方面,我想用户撰写和其他类型的默认图像。

【问题讨论】:

    标签: ios uibarbuttonitem uibarbuttonitemstyle


    【解决方案1】:

    从...替换您的代码

    [editFavoritesButton setBackgroundImage:[UIImage imageNamed:@"barbuttonPlain.png"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
    

    像这样……

    [editFavoritesButton setImage:[UIImage imageNamed:@"barbuttonPlain.png"]];
    

    【讨论】:

    • 谢谢我的错误是 barbuttonPlain.png 原本是 barButtonPlain.png =)
    • 你需要调用 [barbuttonItem setBackgroundImage:strechableImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];未设置图片:
    【解决方案2】:

    使用此代码创建自定义 UIBarButtonItem:

    UIButton *mybutton = [UIButton buttonWithType:UIButtonTypeCustom];
    [mybutton setFrame:CGRectMake(0.0f, 0.0f, 25.0f, 25.0f)];
    [mybutton addTarget:self action:@selector(mybuttonFunction) forControlEvents:UIControlEventTouchUpInside];
    [mybutton setImage:[UIImage imageNamed:@"myImage.png"] forState:UIControlStateNormal];
    
    UIBarButtonItem *random = [[UIBarButtonItem alloc] initWithCustomView:mybutton];
    

    希望这会对你有所帮助。

    【讨论】:

      【解决方案3】:

      你可以这样尝试如果你有任何问题你可以问..

      UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];
      backButton.frame = CGRectMake(0, 0, 83, 44);
      backButton.adjustsImageWhenHighlighted=NO;
      [backButton addTarget:self action:@selector(backMethod)
             forControlEvents:UIControlEventTouchDown];
      [backButton setImage:[UIImage imageNamed:@"img.png"]
                    forState:UIControlStateNormal];
      
      
      UIBarButtonItem *barLeftInfoButton = [[UIBarButtonItem alloc] initWithCustomView:backButton];
      self.navigationItem.leftBarButtonItem = barLeftInfoButton;
      

      【讨论】:

        【解决方案4】:

        先添加自定义按钮,再添加到 UIBarButtonItem。

        UIImage *buttonImage = [UIImage imageNamed:@"mainButton.png"];
        
            //create the button and assign the image
        self.yourButton = [UIButton buttonWithType:UIButtonTypeCustom];
        [self.yourButton setFrame:CGRectMake(5,7,buttonImage.size.width,buttonImage.size.height)];
        
        [self.yourButton setBackgroundImage:buttonImage forState:UIControlStateNormal];
        self.yourButton.titleLabel.font = [UIFont boldSystemFontOfSize:12];
        [self.yourButton setTitle:@"title" forState:UIControlStateNormal];
        [self.yourButton addTarget:self action:@selector(startEndEditing:) forControlEvents:UIControlEventTouchUpInside];
        
            // add image view
        [self.navBar addSubview:self.yourButton];
        
        
            //create a UIBarButtonItem with the button as a custom view
        UIBarButtonItem *customBarItem = [[UIBarButtonItem alloc] initWithCustomView:self.yourButton];
        self.navigationItem.leftBarButtonItem = customBarItem;
        

        【讨论】:

          【解决方案5】:

          请尝试使用这个....

          UIButton *editFavoritesButton = [[UIButton alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 55.0f, 30.0f)];
          [editFavoritesButton setBackgroundColor:[UIColor clearColor]];
          [editFavoritesButton setBackgroundImage:[UIImage imageNamed:@"barbuttonPlain.png"] forState:UIControlStateNormal];
          [editFavoritesButton addTarget:self action:@selector(startEndEditing:) forControlEvents:UIControlEventTouchUpInside];
          
          UIBarButtonItem *leftBtn = [[UIBarButtonItem alloc] initWithCustomView:editFavoritesButton];
          [self.navigationItem setLeftBarButtonItem:leftBtn];
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-02-10
            • 1970-01-01
            • 1970-01-01
            • 2014-08-21
            相关资源
            最近更新 更多