#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号
闭关修行中......