Verwendung des falschen Steuerungstyps in einem bestehenden Projekt:
Wie können wir UITextFieldUITextField替换成UILabel bequem durch UILabel
UITextField
UILabel
DankeChris für die Aufklärung der Verwirrung;LabelWenn es viele Schnittstellen gibt, können Sie das
Label
右键xib或storyboard, Open As -> Source Code . 找到textField,修改为label. 再用interface builder打开就可以了, 修改后会保留原来的约束和Frame.
法一:写一个类CustomTextField,继承自UITextField,然后在可视化界面让你的所有UITextField控件继承它
CustomTextField
UITextField控件
在CustomTextField中禁掉所有触摸事件,基本就与UILabel的表现一致了如有必要,重写UITextField的系统方法,不调用super方法,例如覆盖掉UIAlertView的点击事件
UIAlertView
-(void)dismissWithClickedButtonIndex:(NSInteger)buttonIndex animated:(BOOL)animated{ // [super dismissWithClickedButtonIndex:buttonIndex animated:animated]; return; }
法二:增加UITextField的分类扩展,然后利用runtime的method swizzling交换系统方法,这样你所有的UITextField就会变得跟UILabel一样了。。。慎用!!!
最后总结,有这闲工夫不如还是一个一个删掉替换容易些
右键xib或storyboard, Open As -> Source Code . 找到textField,修改为label. 再用interface builder打开就可以了, 修改后会保留原来的约束和Frame.
法一:
写一个类
CustomTextField
,继承自UITextField
,然后在可视化界面让你的所有UITextField控件
继承它在
CustomTextField
中禁掉所有触摸事件,基本就与UILabel的表现一致了如有必要,重写
UITextField
的系统方法,不调用super方法,例如覆盖掉UIAlertView
的点击事件法二:
增加
UITextField
的分类扩展,然后利用runtime的method swizzling交换系统方法,这样你所有的UITextField
就会变得跟UILabel一样了。。。慎用!!!最后总结,有这闲工夫不如还是一个一个删掉替换容易些