_btn.frame.origin.y -= 10;
expression is not assignable
報錯原因: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);