這是我第一次設計iOS應用程序,所以我想確保我正確理解此行爲。使用initWithFrame時縮小UIButton的背景圖片:
我在Photoshop中爲導航欄設計了一個自定義欄按鈕圖標。我在Photoshop中保存的最終圖像是102 x 45,是的,我意識到這些尺寸比iOS 7設計指南中推薦的44x44大。
不管怎麼說,我把我的形象進入資產文件夾,然後編程用下面的代碼設置欄按鈕項:
UIImage* firstButtonImage = [UIImage imageNamed:@"loginbutton1"];
CGRect frame = CGRectMake(0, 0, 102, 45);
UIButton * someButton = [[UIButton alloc] initWithFrame:frame];
[someButton setBackgroundImage:firstButtonImage forState:UIControlStateNormal];
[someButton addTarget:self action:@selector(didTapLoginButton:)
forControlEvents:UIControlEventTouchUpInside];
self.rightBarButton = [[UIBarButtonItem alloc] initWithCustomView:someButton];
self.navItem.rightBarButtonItem = self.rightBarButton;
正如你可以看到我設置幀的寬度和高度精確的尺寸的形象。當我第一次運行應用程序時,我不喜歡圖像並認爲它太大。所以我改變了這個說法的寬度和高度參數:
CGRect frame = CGRectMake(0, 0, 70, 30);
現在圖像看起來完美的iPhone屏幕上。這是在iPhone 4s上。
所以我的主要問題是,當我改變幀大小時,實際發生了什麼?由於該幀現在小於實際圖像尺寸,圖像是否會自動縮小以適應幀內部?
我希望我的回答可以幫助你。 –