簡體   English   中英

調整從xib創建的UIView的大小?

[英]Size a UIView created from a xib?

我正在從xib創建一個UIView,最終渲染成UIImage。

UIView本身具有內部約束,在IB中具有足夠大的幀大小時可以正常工作。 但是,我需要將寬度調整為某些特定內容,我無法弄清楚如何在從xib加載后設置UIView的寬度。

[[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil][0];

要渲染視圖,我這樣做:

UIGraphicsBeginImageContextWithOptions(view.bounds.size, NO, 0.0);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

然而,無論我設置的是什么,UIView的大小都與IB中的初始大小相同。 如何設置UIView的大小,以便它會導致內部約束調整大小並正確呈現?

嘗試設置視圖的所需幀,然后在其上調用layoutIfNeeded:

UIView *view = [[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil][0];
CGRect finalFrame = CGRectMake(0, 0, 90, 90);
view.frame = finalFrame;
[view layoutIfNeeded];

UIGraphicsBeginImageContextWithOptions(finalFrame.size, NO, 0.0);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

暫無
暫無

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

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