1. 程式人生 > >UIButton圖片的contentMode(backgroundImage與image)

UIButton圖片的contentMode(backgroundImage與image)

首先我們要明確一點.UIButton有"兩張"圖片.backgroundImage和image.一個用於背景(在控制元件的上面一層)、一個在最上層和文字是同一層級.

首先contentMode是UIView物件的屬性.
然後UIButton的contentMode並不會影響這兩個屬性.

// return title and image views. will always create them if necessary. always returns nil for system buttons
@property(nullable, nonatomic,readonly,strong) UILabel     *titleLabel NS_AVAILABLE_IOS(3_0);
@property(nullable, nonatomic,readonly,strong) UIImageView *imageView  NS_AVAILABLE_IOS(3_0);

只要不是system buttons的buttontype是不會返回nil的.舉個例子:system buttons中的add樣式的"+號"圖片其實是在backgroundImage上的.那麼.這個imageView肯定就是setImage forstate有關的imageView了.

所以進行如下設定來改變setImage forState中的image對應控制元件的contentMode

	UIbutton *button = [[UIButton alloc] init];
	button.imageView.contentMode = XXXMode;