在我的工具栏中有一个 UiBarButton
项目。我需要禁用用户的触摸交互。但是它没有 setUserInteractionEnabled 属性。当我隐藏它时,可见性不正确。请问有人能告诉我如何在不禁用 UIbarbutton
的情况下禁用用户的触摸交互吗?
在我的工具栏中有一个 UiBarButton
项目。我需要禁用用户的触摸交互。但是它没有 setUserInteractionEnabled 属性。当我隐藏它时,可见性不正确。请问有人能告诉我如何在不禁用 UIbarbutton
的情况下禁用用户的触摸交互吗?
要在UIToolBar中添加标题,请向工具栏添加UIBarButtonItem,然后将其customView属性设置为UILabel。然后您可以设置标签的文本,而不会有任何突出显示等效果。
// In @interface section:
@property (weak, nonatomic) IBOutlet UIBarButtonItem *titleButtonItem;
// In @implementation section:
- (void)viewDidLoad {
...
UILabel *titleLabel = [[UILabel alloc] init];
self.titleButtonItem.customView = titleLabel;
titleLabel.text = @"Some Title Text";
[titleLabel sizeToFit];
...
}
[barButtonItem setTarget:nil];
[barButtonItem setAction:nil];
您总是可以做到以下几点:
[yourbutton removeTarget:nil
action:NULL
forControlEvents:UIControlEventAllEvents];
Obj - c
UIButton *barButton = [UIButton buttonWithType:UIButtonTypeCustom];
[barButton setImage:[UIImage imageNamed:@"image.png"] forState:UIControlStateNormal];
[barButton setImage:[UIImage imageNamed:@"image.png"] forState:UIControlStateDisabled];
barButton.frame = CGRectMake(10.0,10.0,50,50);
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithCustomView:aButton];
backButton.enabled = NO;
self.navigationItem.leftBarButtonItem = backButton;
Swift 4
按钮图片
let barButton = UIButton(type: .custom)
barButton.setImage(UIImage(named: "image.png"), for: .normal)
barButton.setImage(UIImage(named: "image.png"), for: .disabled)
barButton.frame = CGRect(x: 10.0, y: 10.0, width: 50, height: 50)
let backButton = UIBarButtonItem(customView: aButton)
backButton.isEnabled = false
navigationItem.leftBarButtonItem = backButton
按钮标题
let btnTitle = UIBarButtonItem(title: "Your Button title", style: .plain, target: nil, action:nil)
btnTitle.setTitleTextAttributes([NSAttributedStringKey.font: UIFont(name: "fontname", size: 14.0)!], for: .normal)
btnTitle.setTitleTextAttributes([NSAttributedStringKey.font: UIFont(name: "fontname", size: 14.0)!], for: .disabled)
btnTitle.isEnabled = false
self.navigationItem.leftBarButtonItems = [btnTitle]
创建一个与您的按钮相关联的自定义属性。
假设您的按钮触发以下操作:
-(IBAction)fireOnButtonPress:(id)sender {
// do something
}
BOOL interactionEnabled;
,并在您的viewDidLoad
或其他初始化方法中将其设置为YES
。interactionEnabled = YES;
NO
。interactionEnabled = NO;
-(IBAction)fireOnButtonPress:(id)sender {
if(interactionEnabled) {
// do something
}
// otherwise ignore button press
}
这不会禁用按钮,但当您不希望用户与其交互时,它将防止用户与其交互。
您可以使用alloc-init方法创建一个自定义的UILabel,并将其作为UIBarbuttonItem(如何实现?请参考post)使用,这样它就没有任何文本,且大小足够大以覆盖您想要禁用的UIBarbuttonItem。对我来说这个方法有效。
您可以在这里找到您的答案。
在 .h 文件中:
IBOutlet UIBarButtonItem *button1;
[button1 setEnabled:FALSE];