美文网首页一些工具类
runTime的简单应用

runTime的简单应用

作者: wsj2012 | 来源:发表于2016-06-30 10:29 被阅读38次

利用runtime,我们能够根据服务端所给的image来动态的变化TabBarItem的大小,类似像淘宝、京东活动时。思想:主要是利用runtime对UITabBar的layoutSubviews进行重写,然后调整UITabBarItem的位置。

实现:

首先我们使用runtime method swizzling交换系统的- (void)layoutSubviews;

使用KVC对系统的UITabBarButton、UITabBarSwappableImageView、UITabBarButtonLabel、_UIBadgeView进行捕获

拿到控件后我们对其的frame进行计算,判断当前有没有超出tabbar的高度,若超出则进行处理

再次利用runtime method swizzling交换系统的- (nullable UIView *)hitTest:(CGPoint)point withEvent:(nullable UIEvent *)event;使图片超过后也能接受点击

代码:

method swizzling:

计算frame,并对其重新布局

让图片超出部分也能响应点击事件

注意事项

在给tabbar设置图片的时候一定要设置图片的renderingMode,否则就会出现下图中图片丢失的现象

UITabBarButton被修改frame之后,仅有UITabBarSwappableImageView能够响应点击事件,不过我们能够在UITabBar的- (void)touchesBegan:(NSSet *)touches withEvent:(nullable UIEvent *)event;方法中捕获到

当适配图片后不要忘记适配_UIBadgeView的frame

相关文章

  • Runtime全面剖析之原理篇

    如果想了解Runtime的实际应用请看Runtime全面剖析之简单使用 一:Runtime简介二: Runtime...

  • runtime简单应用

    1.获取对象属性和变量列表 这里准备了一个Model类 在要查看它属性列表的类里引入头文件: 然后实现如下代码: ...

  • Runtime的简单应用

    自己最近在研究Runtime,研究好久才知道了一些大概和简单的应用。在这里做一个笔记。RunTime被称为iOS开...

  • RunTime的简单应用

    首先就是在.m文件导入头文件 通过RunTime对一个类的成员变量进行遍历 通过RunTime对一个类的成员函数进...

  • runTime的简单应用

    利用runtime,我们能够根据服务端所给的image来动态的变化TabBarItem的大小,类似像淘宝、京东活动...

  • Runtime的应用

    Runtime的应用 Runtime的应用

  • 【Swift】runtime简单应用

    1、获取属性列表 2、模型中基本类型不能设置为可选类型,因为kvc是oc的,而oc中基本类型没有可选。 另外属性不...

  • 自己实现OC的KVO

    Runtime系列文章在这:Runtime介绍---术语介绍Runtime应用--动态添加方法Runtime应用-...

  • Runtime快速上手(1)

    依照惯例跳过Runtime的介绍,这里只介绍Runtime的基本用法和简单应用例子。 一、获取属性列表 输出结果:...

  • iOS Runtime 的应用场景

    前言 上次简单介绍了 Runtime 的原理,和 Runtime 常用的操作。下面就来介绍一下常见的几种应用场景。...

网友评论

本文标题:runTime的简单应用

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