[英]How to set specific size to UIImageView
我遇到了一個奇怪的錯誤。 我正在嘗試以編程方式初始化具有特定框架和圖像的UIImageView。 我的圖片是60x60,但我正在嘗試在屏幕上將其尺寸調整為30x30,這似乎是不可能的。
以下工作原理,但是以60x60的分辨率顯示圖像:
UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"logo.png"]];
[imgView setContentMode:UIViewContentModeScaleAspectFit];
// imgView.frame = CGRectMake(100, 200, 30, 30);
imgView.center = CGPointMake(pointTouch.x, pointTouch.y);
[self.view addSubview:imgView];
而且以下內容根本沒有在屏幕上顯示任何內容:
UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"logo.png"]];
[imgView setContentMode:UIViewContentModeScaleAspectFit];
imgView.frame = CGRectMake(100, 200, 30, 30);
imgView.center = CGPointMake(pointTouch.x, pointTouch.y);
[self.view addSubview:imgView];
怎么了?
編輯 : 對於那些有相同的問題,這是工作代碼:
UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"logo.png"]];
imgView.frame = CGRectMake(self.view.bounds.size.width/2, self.view.bounds.size.height/2, 30, 30);
imgView.center = CGPointMake(pointTouch.x, pointTouch.y);
[imgView setContentMode:UIViewContentModeScaleAspectFill];
[self.view addSubview:imgView];
開始實驗
imgView.center = CGPointMake(view.bounds.x/2, view.bounds.y/2);
imgView.bounds = view.bounds;
看看這是否充滿了超級視圖。 然后分別嘗試CGPointMake(pointTouch.x, pointTouch.y)
和CGPointMake(30,30)
。
我猜想這種行為與有關frame
警告有關 :
如果transform屬性不是恆等變換,則此屬性的值未定義,因此應忽略。
您可以嘗試使用設置的框架初始化UIImageView
,然后在那之后設置圖像:
UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 200, 30, 30)];
[imgView setContentMode:UIViewContentModeScaleAspectFit];
imgView.image = [UIImage imageNamed:@"logo.png"];
imgView.center = CGPointMake(pointTouch.x, pointTouch.y);
[self.view addSubview:imgView];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.