IOS之代理文字点击变大变小


重点是掌握代理的使用,否则也失去次此意义

#import "ViewController.h"
#import "AHLJFontSizePicker.h"
#define kScreenW [UIScreen mainScreen].bounds.size.width
@interface ViewController ()<AHLJFontSizePickerDelegate>
@property (weak, nonatomic) IBOutlet UILabel *lbl;
@end
@implementation ViewController
- (void)viewDidLoad {[super viewDidLoad];AHLJFontSizePicker *pickView = [[AHLJFontSizePicker alloc] initWithFrame:CGRectZero];pickView.delegate = self;pickView.frame = CGRectMake(0, 150, kScreenW, 80);pickView.backgroundColor = UIColor.systemTealColor;[self.view addSubview:pickView];}
- (void)fontSizePickerDidBtnClick:(AHLJFontSizePicker *)picker didSetFontSize:(FontSizeEnum)fontSize{switch (fontSize) {case FontSizeSmall:self.lbl.font = [UIFont systemFontOfSize:11 weight:UIFontWeightBold];break;case FontSizeMiddle:self.lbl.font = [UIFont systemFontOfSize:15 weight:UIFontWeightBold];break;case FontSizeBig:self.lbl.font = [UIFont systemFontOfSize:18 weight:UIFontWeightBold];break;case FontSizeSuperBig:self.lbl.font = [UIFont systemFontOfSize:22 weight:UIFontWeightBold];break;default:break;}}
@end
//
//  AHLJFontSizePicker.h
//  图片点击文字变大或者变小
//
//  Created by lujun on 2021/10/20.
//#import <UIKit/UIKit.h>
@class AHLJFontSizePicker;
typedef enum {FontSizeSmall = 0,FontSizeMiddle = 1,FontSizeBig = 2,FontSizeSuperBig = 3}FontSizeEnum;
NS_ASSUME_NONNULL_BEGIN
@protocol AHLJFontSizePickerDelegate <NSObject>
-(void)fontSizePickerDidBtnClick:(AHLJFontSizePicker *)picker didSetFontSize:(FontSizeEnum)fontSize;
@end
@interface AHLJFontSizePicker : UIView
@property(nonatomic,weak)id<AHLJFontSizePickerDelegate> delegate;
@end
NS_ASSUME_NONNULL_END
#define kBtnCount 4
#import "AHLJFontSizePicker.h"
#define btnH1 30
#define  btnY1 5
#define btnW1 self.frame.size.width / btnCount
@interface AHLJFontSizeButton : UIButton
@end
@implementation AHLJFontSizeButton
- (instancetype)initWithFrame:(CGRect)frame{self = [super initWithFrame:frame];if(self){self.adjustsImageWhenHighlighted  = NO;self.imageView.contentMode = UIViewContentModeScaleAspectFit;}return  self;
}
- (void)setHighlighted:(BOOL)highlighted{}
@end
@interface AHLJFontSizePicker()
@property(nonatomic,weak)AHLJFontSizeButton *selectedButton;
@property(nonatomic,weak)UIImageView *topLine;
@property(nonatomic,weak)UIImageView *bottomLine;
@property(nonatomic,weak)UIImageView *slider;
@end
@implementation AHLJFontSizePicker
- (UIImageView *)topLine{if(!_topLine){UIImageView *topLineImg = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"正文字号-滑条红"]];_topLine = topLineImg;[self addSubview:_topLine];}return _topLine;
}
- (void)drawRect:(CGRect)rect{[super drawRect:rect];CGFloat sW = [UIScreen mainScreen].bounds.size.width;CGFloat btnW = sW / kBtnCount;CGFloat btnY = 5;CGFloat btnH = 30;NSArray *arrNor = @[@"正文字号-小(默认)",@"正文字号-中(默认)",@"正文字号-大(默认)",@"正文字号-大+(默认)"];NSArray *arrSel = @[@"正文字号-小",@"正文字号-中",@"正文字号-大",@"正文字号-大+"];for(int i=0;i<kBtnCount;i++){AHLJFontSizeButton *btn = [[AHLJFontSizeButton alloc] initWithFrame:CGRectMake(i * btnW, btnY, btnW, btnH)];[btn setImage:[UIImage imageNamed:arrNor[i]] forState:UIControlStateNormal];[btn setImage:[UIImage imageNamed:arrSel[i]] forState:UIControlStateSelected];btn.tag = i;[self addSubview:btn];[btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];}AHLJFontSizeButton *firstBtn = (AHLJFontSizeButton *)self.subviews.firstObject;AHLJFontSizeButton *lastBtn = (AHLJFontSizeButton *)self.subviews.lastObject;UIImageView *slider = [[UIImageView alloc] initWithImage: [UIImage imageNamed:@"正文字号-滑块"]];[self addSubview:slider];self.slider = slider;UIImageView *bottomLine = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"正文字号-滑条"]];CGFloat bottomLineX = firstBtn.center.x - slider.frame.size.width*0.5;CGFloat bottomLineMaxX = lastBtn.center.x + slider.frame.size.width*0.5;CGFloat bottomY = 35 + 15;bottomLine.frame = CGRectMake(bottomLineX,bottomY , bottomLineMaxX - bottomLineX, 3);[self addSubview:bottomLine];self.bottomLine = bottomLine;slider.center = CGPointMake( firstBtn.center.x, bottomLine.center.y);[self btnClick:firstBtn];
}
-(void)btnClick:(AHLJFontSizeButton *)btn{self.selectedButton.selected = NO;btn.selected = YES;self.selectedButton = btn;self.slider.center =CGPointMake(self.selectedButton.center.x, self.bottomLine.center.y);self.topLine.frame = CGRectMake(self.bottomLine.frame.origin.x, self.bottomLine.frame.origin.y, self.slider.center.x-self.slider.frame.size.width-7, 3);if([self.delegate respondsToSelector:@selector(fontSizePickerDidBtnClick:didSetFontSize:)]){[self.delegate fontSizePickerDidBtnClick:self didSetFontSize:(int)btn.tag];}
}
@end

https://e.coding.net/lujun1/wangyecebianlan/IOSSmallPictureAndBig.git

IOS之代理文字点击变大变小相关推荐

  1. javascript基础——文字变大变小className的使用及JS浮动的兼容用法

    文字变大变小,详情页比较常见的那种 <!DOCTYPE html> <html lang="en"> <head><meta charse ...

  2. IOS考试题3字体变大变小

    IOS考试题3字体变大变小 swift写法,oc待续 FontSizePicker.swift import UIKitenum FontSize : Int {case FontSizeSmall ...

  3. 出门就背他了!可伸缩的背包,自由变大变小,还有防盗功能!

    ▲ 点击查看 出门能不背包就不背包,几乎是小爆身边每个男生的人生信条. 不背包时,两手空空一身轻,潇洒有型. 但一旦到了必须背包,比如五一外出回家或旅游的时候,男同胞们翻箱倒柜找出来的背包,大多都是这 ...

  4. 计算机界面横向拉宽了怎样还原,电脑屏幕变大变小了如何还原

    对于电脑屏幕变大变小了不知道还原,如何解决的呢,那么电脑屏幕变大变小了如何还原?下面是学习啦小编收集整理的电脑屏幕变大变小了如何还原,希望对大家有帮助~~ 电脑屏幕变大变小了还原的方法 因为每台显示器 ...

  5. oracle11g trc 文件,Oracle11g11.2.0.1设置HuagePage导致TRC变大变多

    Oracle 11g 11.2.0.1 设置HuagePage导致TRC 变大 变多 最近发现diag/..../trac/ 目录下 sid_ora_xxxx.trc 文件大小为11M 而且类似文件数 ...

  6. 华为虚拟home键关闭_华为手机音量忽大忽小,不妨打开这3个开关调整,音量变大变清晰...

    华为手机音量忽大忽小,不妨打开这3个开关调整,音量变大变清晰 手机现在已经不仅仅是一个通讯工具,日常生活听歌.看剧.打游戏来供人们娱乐,倘若手机音量忽大忽小,是非常影响我们娱乐的体验感,还有电话声忽大 ...

  7. 图片随鼠标滑轮滚动变大变小

    * 图片随鼠标滑轮滚动变大变小,最大不超过屏幕宽度-360 */ <HTML> <HEAD> <meta http-equiv="Content-Type&qu ...

  8. 动态头像 Android 实现,Android开发中实现一个头像滑动变大变小功能

    Android开发中实现一个头像滑动变大变小功能 发布时间:2020-11-21 16:36:20 来源:亿速云 阅读:74 作者:Leah 这篇文章给大家介绍Android开发中实现一个头像滑动变大 ...

  9. Python操作窗口变大变小

    """ 打开notepad,使之变大变小 """ import win32con import win32gui# 参2:要打开的notep ...

最新文章

  1. hdu4920 矩阵乘法%3
  2. 一码阻塞,万码等待:ASP.NET Core 同步方法调用异步方法“死锁”的真相
  3. DTC跨境电商白皮书
  4. 每日一题丨以下哪个SQL查询的结果是2006-01-01 00:00:00
  5. 《Android深度探索》第一章心得体会
  6. 浅析基本事实表的ETL处理
  7. php一句话 专杀,PHP-DDOS脚本专杀工具1.0 官方版
  8. 教小师妹学多线程,看完我写的例子,脸红成那样!
  9. 12306候补购票功能怎么用?抢票软件依旧能抢到票
  10. 全文检索(一) -- Lucene
  11. 计算机字符格式化集体备课教案,有序备课:集体备课中不要忘记个性化备课
  12. Autohotkey全选复制并保存剪切板文本至以时间命名的文本文件
  13. 第52篇 Android Studio实现生命数字游戏(七)ListView与适配器
  14. (转)IT人员必读10个小故事
  15. P2040 打开所有的灯
  16. 全屏滚动插件fullPage.js
  17. OceanBase 3.1.2版本测试报告
  18. 刺激战场模拟器过检测的被封号了怎么办?电脑控制手机玩游戏了解一下
  19. java学习之字符串的截取
  20. 联发科携手爱立信在非洲推出LTE-A

热门文章

  1. java 树 右键菜单_jQuery实现自定义右键菜单的树状菜单效果
  2. html5表单新增的输入类型,HTML5之表单新增类型介绍
  3. php+header+跳转输出,php利用header跳转怎么失效了?
  4. jsp里照片放在哪里_杭州这所新学校今天办了场热闹的“电影节”,校园里处处高科技,黑板一秒变电脑屏幕...
  5. java 数据库 字段名 转_Java正则表达式实现表字段名和驼峰式命名转换
  6. win 2016 ssh_如何使用BPF将SSH会话转换为结构化事件
  7. 24年前华为招聘广告是什么样的?
  8. java 控制 crt_secureCRT关闭连接自动关闭tomcat服务
  9. 《c语言从入门到精通》看书笔记——第1章 C语言的概述
  10. java 复制文件_Java中复制文件的4种方法