簡體   English   中英

如何設置UIImageView的特定大小

[英]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.

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