Ios 表达式不可赋值错误

Ios 表达式不可赋值错误,ios,uitextfielddelegate,Ios,Uitextfielddelegate,在iOS中为我的textField应用程序获取了此代码。。。我计划这样做,当键盘出现时,文本字段正好在键盘顶部上升,当按下键盘上的返回键时,文本字段返回到屏幕底部的原始位置。但我得到了这个错误,“表达式是不可赋值的。”我该如何解决这个问题?该错误是什么意思?您不能为原点或高度指定值。您必须为您的帧分配一个CGRect,并更新新CGRect中的值。您不能像这样编辑帧: - (void)textFieldDidBeginEditing:(UITextField *)textField { #

在iOS中为我的textField应用程序获取了此代码。。。我计划这样做,当键盘出现时,文本字段正好在键盘顶部上升,当按下键盘上的返回键时,文本字段返回到屏幕底部的原始位置。但我得到了这个错误,“表达式是不可赋值的。”我该如何解决这个问题?该错误是什么意思?

您不能为原点或高度指定值。您必须为您的帧分配一个CGRect,并更新新CGRect中的值。

您不能像这样编辑帧:

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
    #define kOFFSET_FOR_KEYBOARD 110.0
    textField.frame.origin.y -= kOFFSET_FOR_KEYBOARD;
    textField.frame.size.height += kOFFSET_FOR_KEYBOARD;
    textField.frame = CGRectMake(textField.frame.origin.x, (textField.frame.origin.y - 230.0), textField.frame.size.width, textField.frame.size.height);

}
textField.frame.origin.y -= kOFFSET_FOR_KEYBOARD;
textField.frame.size.height += kOFFSET_FOR_KEYBOARD;
您需要获取帧,编辑它,然后重新将其重新签名,如下所示:

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
    #define kOFFSET_FOR_KEYBOARD 110.0
    textField.frame.origin.y -= kOFFSET_FOR_KEYBOARD;
    textField.frame.size.height += kOFFSET_FOR_KEYBOARD;
    textField.frame = CGRectMake(textField.frame.origin.x, (textField.frame.origin.y - 230.0), textField.frame.size.width, textField.frame.size.height);

}
textField.frame.origin.y -= kOFFSET_FOR_KEYBOARD;
textField.frame.size.height += kOFFSET_FOR_KEYBOARD;
如果您发现自己不得不经常这样做,您可以编写一个类别来实现这些方法(setHeight、setX…),例如:

CGRect myFrame = textField.frame;
myFrame.origin.y -= kOFFSET_FOR_KEYBOARD;
myFrame.size.height += kOFFSET_FOR_KEYBOARD;
textField.frame = myFrame;
#导入
@界面视图(AlterFrame)
-(void)setFrameWidth:(CGFloat)newWidth;
-(void)setFrameHeight:(CGFloat)newHeight;
-(void)setFrameOriginX:(CGFloat)newX;
-(void)setFrameOriginY:(CGFloat)newY;
@结束
#导入“UIView+AlterFrame.h”
@实现UIView(AlterFrame)
-(void)setFrameWidth:(CGFloat)newWidth{
CGRect f=self.frame;
f、 size.width=newWidth;
self.frame=f;
}
-(void)setFrameHeight:(CGFloat)newHeight{
CGRect f=self.frame;
f、 size.height=新高度;
self.frame=f;
}
-(void)setFrameOriginX:(CGFloat)newX{
CGRect f=self.frame;
f、 origin.x=newX;
self.frame=f;
}
-(void)setFrameOriginY:(CGFloat)newY{
CGRect f=self.frame;
f、 origin.y=newY;
self.frame=f;
}
@结束
摘自中的第二个响应:


这肯定是个骗局。我记得几周前回答过同样的问题。啊哈!即使是那一个也是个骗局。其中: