84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
我在网上搜了一下,基本都是说
setBackgroundImage,image会随着button的大小而改变,图片自动会拉伸来适应button的大小,这个时候任然可以设置button的title,image不会挡住title;
相反的的setImage,图片不会进行拉伸,原比例的显示在button上,此时再设置title,title将无法显示,我想问的是这些区别的原始出处是哪里? 我在uibutton的 官方的 class reference里都没找到
走同样的路,发现不同的人生
(1) background image, title, image(前景图片) 是有z-index的, 在UIButton建立的时候就已经定好了,所以setBackgroundImage 和 setImage的效果是不一样的。(2) 关于UIButton里的Image和title, apple 官方文档解释的还是很详细的:https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIButton_Class/#//apple_ref/doc/uid/TP40006815-CH3-SW31(2.1) "Figure 1Providing a title and image for a button" 上面 Content部分解释了 title和image分别是 UILabel和 UIImageView(2.2) “Configuring Edge Insets” 里面有三个属性 contentEdgeInsets, titleEdgeInsets, imageEdgeInsets, 调整值可以实现左文字右图片。(2.3) UIImageView 关于用 resizableImageWithCapInsets:resizingMode: 如何调整大小,也作了详细说明:https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIImageView_Class/index.html#//apple_ref/occ/cl/UIImageView(2.4) image的内容展现模式由UIImageView的contentMode决定;显然background image使用了默认模式UIViewContentModeScaleToFill。请参考看实例:http://blog.csdn.net/iunion/article/details/7494511
请参考以下代码,在setImage之前先修改contentMode,看看会有什么不同:
//模式1. self.btnTestImage.imageView.contentMode = UIViewContentModeScaleAspectFit; //模式2. //self.btnTestImage.imageView.contentMode=UIViewContentModeScaleAspectFill; [self.btnTestImage setImage:imgW200 forState:UIControlStateNormal];
(3) 图片最好还是事先处理到合适的小尺寸,没有你现在遇到的困惑。你现在用大图片,就要写一堆图片裁减的代码。给你个UIImage category的链接作参考:http://blog.sina.com.cn/s/blog_6123f9650100p88p.html
(1) background image, title, image(前景图片) 是有z-index的, 在UIButton建立的时候就已经定好了,所以setBackgroundImage 和 setImage的效果是不一样的。
(2) 关于UIButton里的Image和title, apple 官方文档解释的还是很详细的:
https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIButton_Class/#//apple_ref/doc/uid/TP40006815-CH3-SW31
(2.1) "Figure 1Providing a title and image for a button" 上面 Content部分解释了 title和image分别是 UILabel和 UIImageView
(2.2) “Configuring Edge Insets” 里面有三个属性 contentEdgeInsets, titleEdgeInsets, imageEdgeInsets, 调整值可以实现左文字右图片。
(2.3) UIImageView 关于用 resizableImageWithCapInsets:resizingMode: 如何调整大小,也作了详细说明:
https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIImageView_Class/index.html#//apple_ref/occ/cl/UIImageView
(2.4) image的内容展现模式由UIImageView的contentMode决定;
显然background image使用了默认模式UIViewContentModeScaleToFill。
请参考看实例:
http://blog.csdn.net/iunion/article/details/7494511
请参考以下代码,在setImage之前先修改contentMode,看看会有什么不同:
(3) 图片最好还是事先处理到合适的小尺寸,没有你现在遇到的困惑。你现在用大图片,就要写一堆图片裁减的代码。给你个UIImage category的链接作参考:
http://blog.sina.com.cn/s/blog_6123f9650100p88p.html