1

UIView があり、それを 50 上げたいと思います。

私は次のように書いた:

NSLog(@"before %@",NSStringFromCGRect(_flixSuggestionsView.frame));
_flixSuggestionsView.frame = CGRectMake(_flixSuggestionsView.frame.origin.x, _flixSuggestionsView.frame.origin.y-45, _flixSuggestionsView.frame.size.width, _flixSuggestionsView.frame.size.height);    
NSLog(@"after %@",NSStringFromCGRect(_flixSuggestionsView.frame));

出力は次のとおりです。

 before {{0, 175}, {320, 324}}
 after {{0, 130}, {320, 324}}

しかし、UIView は同じ場所にとどまります。

私は何が欠けていますか?

4

1 に答える 1

4

ビューに Autolayout 制約が定義されている場合、これらはビューの位置を (他の UI 要素に対して) 決定します。位置を「手動で」制御したい場合は、このビューに関するすべての制約を削除するか、View Controller の Autolayout を完全にオフにする必要があります。

于 2013-10-20T21:27:06.493 に答える