iOS storyboard 怎么方便替换已有控件?
巴扎黑
巴扎黑 2017-06-24 09:44:22
[iOS讨论组]

在已有项目中使用了错误的控件类型:

怎么能方便的将UITextField替换成UILabel,而不用新建(拖)一个控件。


感谢Chris的解惑;
如果界面很多,可以指定Label标记,在代码里搜索来快速定位到控件.

巴扎黑
巴扎黑

全部回复(2)
淡淡烟草味

右键xib或storyboard, Open As -> Source Code . 找到textField,修改为label. 再用interface builder打开就可以了, 修改后会保留原来的约束和Frame.

为情所困

法一:
写一个类CustomTextField,继承自UITextField,然后在可视化界面让你的所有UITextField控件继承它

CustomTextField中禁掉所有触摸事件,基本就与UILabel的表现一致了
如有必要,重写UITextField的系统方法,不调用super方法,例如覆盖掉UIAlertView的点击事件

-(void)dismissWithClickedButtonIndex:(NSInteger)buttonIndex animated:(BOOL)animated{
//    [super dismissWithClickedButtonIndex:buttonIndex animated:animated];
    return;
}

法二:
增加UITextField的分类扩展,然后利用runtime的method swizzling交换系统方法,这样你所有的UITextField就会变得跟UILabel一样了。。。慎用!!!

最后总结,有这闲工夫不如还是一个一个删掉替换容易些

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号