我有一個view
,其中包含TableView
,UIImage
和UIButton
。 UIButton
在IB中配置,位置如下:self.camButton.frame = CGRectMake(0, 410,127,49);
我的問題是當我回彈到第一個ViewController
時,UIButton
更改了它的位置。在第一次加載時,它的位置很好,但當我回到ViewController
時,該按鈕位於視圖中大約20像素的位置。我試圖記錄按鈕的位置,所以我進入viewWillAppear
: NSLog(@"Bug Fixes: %f",self.camButton.frame.origin.y); NSLog(@"Bug Fixes: %f",self.view.frame.origin.y);
但我總是得到410和0的第一次加載和當按鈕錯位。我正在玩View
其他ViewControllers
的位置(雖然顯示鍵盤例如我推高了view
),但我不認爲這是造成它的原因,因爲當我回到第一個位置時,視圖保持在相同的位置ViewController
按鈕在返回ViewController時更改位置
回答
你需要設置autoresizingMask
self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
更多信息,請查看本link
如果啓用autoLayout,則查找約束。
第二種方法是使用initWithFrame:每當你回到那個視圖。
我沒有使用autoLayout。我如何使用initWithFrame? – Segev
用NSRect創建一個框架,給出x,y,高度,寬度...並將其分配給viewDidLoad方法中的按鈕。 –
把你的代碼
self.camButton.frame = CGRectMake(0, 410,127,49);
在-(void)viewWillAppear:(BOOL)animated
試過了。不起作用。控制檯已經告訴我,這是按鈕的位置,當它不是。 – Segev
你正在做一些事情,按鈕上的方向變化?如果是的檢查它 – spider1983
你在哪裏設置按鈕的框架(loadview,viewwillappear等......),你在哪裏分配Button?你在dealloc中刪除按鈕嗎?嘗試設置UIViewAutoresizingFlexibleTopMaring | UIViewAutoresizingFlexibleBottomMargin。
- 1. 按下時更改按鈕的位置
- 2. 更改按鈕的位置
- 3. 更改按鈕的位置
- 4. 更改按鈕位置
- 5. Facebook按鈕更改位置時點擊
- 6. 更改按鈕位置的時間
- 7. 在按鈕上更改viewController單擊
- 8. 更改爲不同的VIewController按鈕按
- 9. 在Android中更改按鈕的位置
- 10. 在Java/Swing中更改按鈕位置
- 11. 返回按鈕時返回按鈕
- 12. 如何在按下時更改按鈕的文本位置?
- 13. 爲什麼更改按鈕寬度時,它正在改變按鈕的位置?
- 14. 返回按鈕滾動位置
- 15. AngularJS $位置服務和「返回」按鈕
- 16. 更改返回按鈕行爲 - Android
- 17. 更改按鈕上文字在按鈕上的位置
- 18. 更改面板按鈕的位置
- 19. Bootbox js:更改Ok按鈕的位置
- 20. 更改執行按鈕的位置VB.NET
- 21. 使用Autolayout更改按鈕位置
- 22. 更改單選按鈕的位置
- 23. 更改Facebook的位置喜歡按鈕
- 24. JButton:更改按鈕的位置
- 25. 如何更改按鈕控制位置?
- 26. 按音量按鈕時更改音量滑塊位置
- 27. 返回頂部按鈕 - 根據分辨率更改固定位置
- 28. C# - 讓4個單選按鈕更改按鈕位置點擊
- 29. 按鈕不改變位置
- 30. JavaFx手動更改按鈕的位置或位置?
您是否在IB佈局上使用約束? – Oritm
我不確定。我如何檢查? – Segev
我沒有使用AutoLayout – Segev