#import "CategoryPickerView.h"
#import "Masonry.h"
@interface CategoryPickerView ()
@property (nonatomic, strong) UIToolbar *pickerTool;
@end
@implementation CategoryPickerView
@synthesize delegate;
- (instancetype)initWithFrame:(CGRect)frame {
    self = [super initWithFrame:frame];
    if (self) {
        [self configureToolBarAndPickerView];
    }
    
    return self;
}
- (void)configureToolBarAndPickerView {
    _pickerTool = [[UIToolbar alloc] initWithFrame:CGRectZero];
    _pickerTool.backgroundColor = [UIColor lightGrayColor];
    
    UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancel)];
    UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(done)];
    UIBarButtonItem *alertButton = [[UIBarButtonItem alloc] initWithTitle:@"abc" style:UIBarButtonItemStylePlain target:self action:@selector(alert)];
    UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
    [_pickerTool setItems:[NSArray arrayWithObjects:cancelButton, flexibleSpace, alertButton, flexibleSpace, doneButton, nil]];
    
    [self addSubview:_pickerTool];
    
    _picker = [[UIPickerView alloc] initWithFrame:CGRectZero];
    [self addSubview:_picker];
    
    [self configureLayoutInView];
}
- (void)configureLayoutInView {
    [_pickerTool mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.mas_equalTo(0);
        make.leading.mas_equalTo(0);
        make.trailing.mas_equalTo(0);
        make.height.mas_equalTo(32);
    }];
    
    [_picker mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(_pickerTool.mas_bottom);
        make.leading.equalTo(_pickerTool.mas_leading);
        make.trailing.equalTo(_pickerTool.mas_trailing);
//        make.bottom.equalTo(self.mas_bottom);
    }];
}
- (void)cancel {
    if (delegate) {
        [delegate cancelButtonPressed];
    }
}
- (void)done {
    if (delegate) {
        [delegate doneButtonPressed];
    }
}
- (void)alert {
    
}
- (void)showInView:(UIView *)view {
    [view addSubview:self];
    [self mas_makeConstraints:^(MASConstraintMaker *make) {
        make.leading.equalTo(view.mas_leading);
        make.trailing.equalTo(view.mas_trailing);
        make.top.equalTo(view.mas_bottom).with.offset(0);
    }];
    
    [self layoutIfNeeded];
    
    [UIView animateWithDuration:0.4
                     animations:^{
                         [self mas_updateConstraints:^(MASConstraintMaker *make) {
                             make.top.equalTo(view.mas_bottom).with.offset(-248);
                         }];
                         [self layoutIfNeeded];
                     }
                     completion:^(BOOL finished) {
                         
                     }
     ];
}
- (void)hideFromView:(UIView *)view {
    [self layoutIfNeeded];
    [UIView animateWithDuration:0.4
                     animations:^{
                         [self mas_updateConstraints:^(MASConstraintMaker *make) {
                             make.top.equalTo(view.mas_bottom).with.offset(0);
                         }];
                         [self layoutIfNeeded];
                     }
                     completion:^(BOOL finished) {
                         [self removeFromSuperview];
                     }
     ];
}
@end
我在viewcontroller中的viewwillappear方法中init了一个CategoryPickerView,
这三个button都无法响应
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
闭关修行中......