TableView 空白處點擊做出處理:
1.給TableView添加點擊事件
UITapGestureRecognizer *singleTap =[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(onClicktableView)];
singleTap.delegate = self;
[self.tableView addGestureRecognizer:singleTap];
2.遵循代理方法
<UIGestureRecognizerDelegate>
3.實現(xiàn)代理方法 (為了不影響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:如果有更好的解決方案,請在評論中指出前硫,謝謝~