TableView 空白处点击做出处理:
1.给TableView添加点击事件
UITapGestureRecognizer *singleTap =[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(onClicktableView)];
singleTap.delegate = self;
[self.tableView addGestureRecognizer:singleTap];
2.遵循代理方法
<UIGestureRecognizerDelegate>
3.实现代理方法 (为了不影响Cell中的其他事件点击)
//手势代理
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
if ([touch.view isKindOfClass:[UITableView class]]) {
return YES;
}
return NO;
}
(Masonry) N个控件等宽布局于父容器中,采用Category方式
UIView+MasonryLayout.h
#import <UIKit/UIKit.h>
@interface UIView (MasonryLayout)
/**
* 将若干view等宽布局于容器containerView中
*
* @param views viewArray
* @param containerView 容器view
* @param LRpadding 距容器的左右边距
* @param viewPadding 各view的左右边距
*/
-(void)makeEqualWidthViews:(NSArray *)views inView:(UIView *)containerView LRpadding:(CGFloat)LRpadding viewPadding :(CGFloat)viewPadding;
@end
UIView+MasonryLayout.m
#import "UIView+MasonryLayout.h"
@implementation UIView (MasonryLayout)
/**
* 将若干view等宽布局于容器containerView中
*
* @param views viewArray
* @param containerView 容器view
* @param LRpadding 距容器的左右边距
* @param viewPadding 各view的左右边距
*/
-(void)makeEqualWidthViews:(NSArray *)views inView:(UIView *)containerView LRpadding:(CGFloat)LRpadding viewPadding :(CGFloat)viewPadding {
UIView *lastView;
for (UIView *view in views) {
[containerView addSubview:view];
if (lastView) {
[view mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.bottom.equalTo(containerView);
make.left.equalTo(lastView.mas_right).offset(viewPadding);
make.width.equalTo(lastView);
}];
}else
{
[view mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(containerView).offset(LRpadding);
make.top.bottom.equalTo(containerView);
}];
}
lastView=view;
}
[lastView mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(containerView).offset(-LRpadding);
}];
}
@end
ps:如果有更好的解决方案,请在评论中指出,谢谢~