美文网首页iOS开发技术分享iOS进阶指南
有趣的分类总结2(UIView+WJEnlargeArea)

有趣的分类总结2(UIView+WJEnlargeArea)

作者: 青青草原饲养源与园叮叮叮叮 | 来源:发表于2016-08-18 17:44 被阅读108次

1.在界面中难免会遇到UIImageView 太小了,不好点击所以要扩大它的点击范围。
我使用分类UIView+WJEnlargeArea实现:

Paste_Image.png

这样可以将greenView的点击范围加大40.

import "UIView+WJEnlargeArea.h"

import <objc/runtime.h>

@implementation UIView (WJEnlargeArea)
static const char topNameKey;
static const char rightNameKey;
static const char bottomNameKey;
static const char leftNameKey;

  • (void) setEnlargeEdge:(CGFloat) edge
    {
    [self setEnlargeEdgeWithTop:edge right:edge bottom:edge
    left:edge];
    }
  • (void) setEnlargeEdgeWithTop:(CGFloat) top right:(CGFloat) right bottom:(CGFloat) bottom left:(CGFloat) left
    {
    objc_setAssociatedObject(self, &topNameKey, [NSNumber numberWithFloat:top], OBJC_ASSOCIATION_COPY_NONATOMIC);
    NSNumber* topEdge = objc_getAssociatedObject(self, &topNameKey);
    objc_setAssociatedObject(self, &rightNameKey, [NSNumber numberWithFloat:right], OBJC_ASSOCIATION_COPY_NONATOMIC);
    objc_setAssociatedObject(self, &bottomNameKey, [NSNumber numberWithFloat:bottom], OBJC_ASSOCIATION_COPY_NONATOMIC);
    objc_setAssociatedObject(self, &leftNameKey, [NSNumber numberWithFloat:left], OBJC_ASSOCIATION_COPY_NONATOMIC);
    }
  • (CGRect) enlargedRect
    {
    NSNumber* topEdge = objc_getAssociatedObject(self, &topNameKey);
    NSNumber* rightEdge = objc_getAssociatedObject(self, &rightNameKey);
    NSNumber* bottomEdge = objc_getAssociatedObject(self, &bottomNameKey);
    NSNumber* leftEdge = objc_getAssociatedObject(self, &leftNameKey);
    if (topEdge && rightEdge && bottomEdge && leftEdge)
    {
    return CGRectMake(self.bounds.origin.x - leftEdge.floatValue,
    self.bounds.origin.y - topEdge.floatValue,
    self.bounds.size.width + leftEdge.floatValue + rightEdge.floatValue,
    self.bounds.size.height + topEdge.floatValue + bottomEdge.floatValue);
    }
    else
    {
    return self.bounds;
    }
    }
    -(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
    {
    CGRect rect = [self enlargedRect];
    return CGRectContainsPoint(rect, point)?self:nil;
    }
    @end

相关文章

  • 有趣的分类总结2(UIView+WJEnlargeArea)

    1.在界面中难免会遇到UIImageView 太小了,不好点击所以要扩大它的点击范围。我使用分类UIView+WJ...

  • 2019.5.8

    作业一:总结学习本章【第一节 有趣的逻辑分类】 的三点收获 1.分类能力是智慧的基础;2.分类方式没有标准答案;3...

  • KNN讲解

    1.基本思想 2.图像分类 3.数据分类 爬虫爬取数据 4.总结

  • 有趣的分类总结1(UIView+SExtend)

    此分类包括以下的功能: UIView的fram相关属性的获区与设置。比如可以这样设置view的x和size代码:U...

  • 2019-06-11 如何10分钟掌握文章结构

    内容提要:1、文章结构分类2、总结 前言 文章结构分类 1、总分总段落 分别是总起、分述、总结。 总起,一版是文章...

  • 有趣的垃圾分类

  • 有趣的逻辑分类

    虽然手绘图有点花时间,但是这个过程很快乐。学会了逻辑分类,日常生活的事也会有序进行。一切的话表达在图里!!

  • 有趣的性格分类

    人有千面,性格也千姿百态,大概可以分为以下几类: 老虎型性格:强烈的指挥欲望,什么事都会定下明确的目标,像捕食猎物...

  • 复习 - 模型测试

    一、模型测试的API总结 1、分类算法评估方式 2、回归算法评估方式 二、分类模型测试 交叉验证:(Cross V...

  • 2017-07-06

    知识管理架构3.4如何面对拒绝 1、检查名单A、B、C、分类的分类,检查是否找到对方的需求点?缺囗?总结经验。 2...

网友评论

    本文标题:有趣的分类总结2(UIView+WJEnlargeArea)

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