美文网首页
iOS-一些实用的小技巧

iOS-一些实用的小技巧

作者: yuyangkk | 来源:发表于2016-09-23 14:05 被阅读52次

1. 全局隐藏tabbar黑色分割线

UITabBar.appearance().shadowImage = UIImage(named: "tabbarshadow")
UITabBar.appearance().backgroundImage = UIImage(named: "tabbarshadow")

2. 全局修改UITextField/UITextView光标颜色

//修改所有的UITextField 和 UITextView的光标颜色
UITextField.appearance().tintColor = kTYMainColor
UITextView.appearance().tintColor = kTYMainColor

3. 获取UISearchBar中的输入框

1.遍历子视图

UITextField *searchField = (UITextField *)[self subViewOfClassName:@"UISearchBarTextField" superView:self.mySearchBar];

/**
* @className:要查找的对象的类名
* @className:父视图
*/
- (UIView *)subViewOfClassName:(NSString *)className superView:(UIView *)superView {
    for (UIView *subView in superView.subviews) {
        if([NSStringFromClass(subView.class) isEqualToString:className]){
            return subView;
        }
        UIView *resultFound = [self subViewOfClassName:className superView:subView];
        if(resultFound){
            return resultFound;
        }
    }
    return nil;
}

2.使用谓词

- (UITextField *)kk_textField {
    NSPredicate *predicate = [NSPredicate predicateWithBlock:^BOOL(UIView *candidateView, NSDictionary *bindings) {
        return [candidateView isMemberOfClass:NSClassFromString(@"UISearchBarTextField")];
    }];
    return [self.subviews.firstObject.subviews filteredArrayUsingPredicate:predicate].lastObject;
}

3.KVC获取

UITextField *searchField = [self.searchBar valueForKey:@"_searchField"];

4. 解决子视图响应父视图手势

  1. 遵循代理<UIGestureRecognizerDelegate>
  2. 设置代理
UITapGestureRecognizer *dissTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(removeFromSuperview)];
dissTap.delegate = self;
[self addGestureRecognizer:dissTap];
  1. 实现代理
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
  if ([touch.view isMemberOfClass:[self class]]) {
      return YES;
  }
  return NO;
}

相关文章

网友评论

      本文标题:iOS-一些实用的小技巧

      本文链接:https://www.haomeiwen.com/subject/xrptyttx.html