簡體   English   中英

如何在iOS中調整UIView的大小?

[英]How to resize UIView in iOS?

我有一個主視圖和一個view1進入主視圖,如何調整view1的大小?

此代碼不起作用:

self.View1.bounds.size.height = self.view.bounds.size.height;
CGRect frame = self.View1.frame;
frame.size.height = self.view.bounds.size.height;
self.View1.frame = frame;

您無法直接修改邊界。 需要在視圖邊界之外修改CGRect。

CGRect viewBounds = self.view1.bounds;
viewBounds.size.height = self.view.bounds.size.height;
self.view1.bounds = viewBounds;

希望這可以幫助!

[self.View1 setFrame:CGRectMake(self.view.frame.origin.x, self.view.frame.origin.x, self.view.frame.size.height, self.view.frame.size.height)];

我沒有足夠的聲譽來為其他一些答案添加一個簡單的評論,所以我將在這里幫助指出幾個要點:

(1)如果只是改變大小,設置新的bounds而不是frame

如果您只想調整圖像大小(但將圖像保持在同一位置),請遵循cdownie建議設置新bounds而不是新frame 例如,如果你有一個指針的圖像,並希望看起來好像它正在點擊屏幕,那么縮小bounds的大小並快速恢復將實現這一目標,它將保持相同的屏幕位置如果您將圖像的錨點設置在其中心,則為其中心點。 如果您改變了frame而不是Tony Friz所建議的那樣,那么在圖像尺寸減小時,圖像將拉到其左上角(除非您使用額外的數學校正這一點)。

(2)如果在筆尖或故事板中創建圖像,請關閉Autolayout和Autosizing

需要在要移動圖像或調整圖像大小的任何視圖中關閉Autolayout。 如果你打開它,行為(當然)將是奇怪的和不可預測的。 此外,在關閉Autolayout的情況下,進入圖像的尺寸檢查器並設置正確的原點(例如,中心)並通過單擊自動調整網格中的任何實線來禁用所有自動調整大小的限制,直到所有這些都是虛線。 這樣,您可以通過設置新bounds來更改center屬性和調整大小,從而完全控制圖像放置。

希望這會有所幫助,Erik

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM