博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于UIScrollView有些你很难知晓的崩溃情形
阅读量:5957 次
发布时间:2019-06-19

本文共 2290 字,大约阅读时间需要 7 分钟。

关于UIScrollView有些你很难知晓的崩溃情形

为了实现以下的功能(按钮之间的切换效果):

简短的代码如下:

////  RootViewController.m//  BUG////  Copyright (c) 2014年 Y.X. All rights reserved.//#import "RootViewController.h"@interface RootViewController (){    UIView    *_showView;}@end@implementation RootViewController- (void)viewDidLoad{    [super viewDidLoad];    _showView = [[UIView alloc] initWithFrame:self.view.bounds];    [self.view addSubview:_showView];        NSArray *title = @[@"YouXianMing",                       @"XianHui",                       @"XianMing",                       @"XianNeng",                       @"XianRen"];        [title enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {        // 初始化button        UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(50, 50*(idx + 1), 130, 30)];        button.layer.borderWidth = 1.f;        [_showView addSubview:button];                // 设置字体        button.titleLabel.font = [UIFont fontWithName:@"HelveticaNeue-Thin"                                                 size:15.f];                // 设置标题以及标题颜色        [button setTitle:obj                forState:UIControlStateNormal];        [button setTitleColor:[UIColor redColor]                     forState:UIControlStateNormal];                // 添加事件        [button addTarget:self                   action:@selector(buttonsEvent:)         forControlEvents:UIControlEventTouchUpInside];    }];}- (void)buttonsEvent:(UIButton *)button{    [_showView.subviews enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {        UIButton *tmpButton = obj;                if ([tmpButton isEqual:button])        {            [tmpButton setTitleColor:[UIColor redColor]                            forState:UIControlStateNormal];        }        else        {            [tmpButton setTitleColor:[UIColor blackColor]                            forState:UIControlStateNormal];        }    }];}@end

之后,将UIView替换成UIScrollView后:

然后就会崩溃-_-!!

崩溃信息:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIImageView setTitleColor:forState:]: unrecognized selector sent to instance 0xa590390'

崩溃原因是_showView.subviews里面有一个UIImageView

我们并没有添加这个东西UIImageView到subviews中呢,其实,这个东西是UIScrollView自己的一个东西......

写上以下保护性语句就没问题了.

话说,UIScrollView跟你偷偷加了点东西让你崩溃了都不知道咋回事-_-!!!

 

 

 

 

转载地址:http://ybexx.baihongyu.com/

你可能感兴趣的文章
TensorSpace:超酷炫3D神经网络可视化框架
查看>>
横向ListView (二)—— 添加快速滚动功能及item相关事件实现
查看>>
java 开发银行支付、对账时证书相关的操作总结
查看>>
为什么你的缓存更新策略是先更新数据库后删除缓存,讲讲其他的情况有什么问题?...
查看>>
计数服务设计
查看>>
如何在windows中使用cmd命令去编译,运行C++程序
查看>>
solidity语言开发智能合约
查看>>
再有人问你Netty是什么,就把这篇文章发给他
查看>>
centos7安装kibana5.x
查看>>
svn常用命令
查看>>
OSChina 周五乱弹 —— 你用学习机来搞学习?
查看>>
利于前台开发的两大工具flex和vue
查看>>
Error creating bean with name 'userServiceImpl': Injection of autowired dependencies failed
查看>>
mybatis update返回值的意义
查看>>
SVNQuery–如何创建更新索引并查询
查看>>
【开源】.Net Api开放接口文档网站
查看>>
spring整合ehcache
查看>>
《Spring Boot实战》读书笔记
查看>>
molicode生成vue增删改查功能
查看>>
类与类加载器---《深入理解java虚拟机》
查看>>