ios开发常见问题及解决办法
1 . storyboard连线问题
产生原因:将与storyboard关联的属性删除了,但是storyboard中还保持之前所关联的属性。
解决:
- 点击view controller
- 点击这排最后一个按钮
- 会出现
- 发现感叹号。点击感叹号的左边的x,取消关联就不会报错了。
2 .文本框中输入的内容密文显示
解决:勾选这个secure 属性
3 .输入文本的时候,怎么显示右边的X按钮(撤销按钮)
1.点击
2.会显示
3.选择,表示当编辑的时候,会出出现X。
效果:
3 .ios中修改UI控件属性问题
报错原因:OC语法规定:不允许直接修改某个对象的结构体属性的成员
_btn 是个对象
frame是个结构体。
对象和结构体是不一样的,结构体是C语言中的,里面可以定义许多属性,但是不能定义方法,而对象是即可以定义属性又可以定义方法的,是典型的面向对象语法。
如何改变对象中结构体属性的成员:
解决方法一:
// 既然不能直接修改对象中的结构体属性成员
// 先取出结构体
CGRect frame = _btn.frame;
// 修改结构体
frame.origin.y -= 10;
// 将修改后的结构体重新赋值回去
_btn.frame = frame;
解决方法二:
// 先取出y值
CGFloat y = _btn.frame.origin.y;
// 修改y值
y -= 10;
// 重新设置_btn的y值,其他属性和_btn保持不变
_btn.frame = CGRectMake(_btn.frame.origin.x, y, _btn.frame.size.width,_btn.frame.size.height);
3 .id 问题
报错原因:id类型不能使用点语法
解决方式一:
// 利用get方法获取tag值
NSInteger i = [sender tag];
解决方式二:
// 将id强转为UIButton
UIButton *button = (UIButton *)sender;
// 就能使用点语法获取tag,编译器很笨的,他只会根据当前类型,去判断是否能使用这个语法。一般强转为对应类型,就能使用对应类型的方法了。
NSInteger i = button.tag;
四.如果发现给控件设置transform属性,控件没有任何反应,或者反应了,但是效果不对
解决方法:将这个选项 取消勾选。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。