iOS - UIButton(UIEdgeInsets)/设置button上的文字和图片 在定义位置
转载自 http://blog.csdn.net/wsk_123_123/article/details/18797549
UIEdgeInsets
typedef struct UIEdgeInsets {
CGFloat top, left, bottom, right; // specify amount to inset (positive) for each of the edges. values can be negative to 'outset'
} UIEdgeInsets;
在UIButton中有三个对EdgeInsets的设置:ContentEdgeInsets、titleEdgeInsets、imageEdgeInsets
@property(nonatomic) UIEdgeInsets contentEdgeInsets UI_APPEARANCE_SELECTOR; // default is UIEdgeInsetsZero
@property(nonatomic) UIEdgeInsets titleEdgeInsets; // default is UIEdgeInsetsZero
@property(nonatomic) BOOL reversesTitleShadowWhenHighlighted; // default is NO. if YES, shadow reverses to shift between engrave and emboss appearance
@property(nonatomic) UIEdgeInsets imageEdgeInsets; // default is UIEdgeInsetsZero
UIEdgeInsetsMake
里面的四个参数表示距离上边界、左边界、下边界、右边界的距离,默认都为零,title/image在button的正中央
UIKIT_STATIC_INLINE UIEdgeInsets UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right) {
UIEdgeInsets insets = {top, left, bottom, right};
return insets;
}
self.view.backgroundColor = [UIColor blackColor];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];//button的类型
button.frame = CGRectMake(100, 100,90, 90);//button的frame
button.backgroundColor = [UIColor cyanColor];//button的背景颜色
// [button setBackgroundImage:[UIImage imageNamed:@"man_64.png"] forState:UIControlStateNormal];
// 在UIButton中有三个对EdgeInsets的设置:ContentEdgeInsets、titleEdgeInsets、imageEdgeInsets
[button setImage:[UIImage imageNamed:@"IconHome@2x.png"] forState:UIControlStateNormal];//给button添加image
button.imageEdgeInsets = UIEdgeInsetsMake(5,13,21,button.titleLabel.bounds.size.width);//设置image在 button上的位置(上top,左left,下bottom,右right)这里可以写负值,对上写-5,那么image就象上移动5个像素
[button setTitle:@"首页" forState:UIControlStateNormal];//设置button的title
button.titleLabel.font = [UIFont systemFontOfSize:16];//title字体大小
button.titleLabel.textAlignment = NSTextAlignmentCenter;//设置title的字体居中
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];//设置title在一般情况下为白色字体
[button setTitleColor:[UIColor grayColor] forState:UIControlStateHighlighted];//设置title在button被选中情况下为灰色字体
button.titleEdgeInsets = UIEdgeInsetsMake(71, -button.titleLabel.bounds.size.width-50, 0, 0);//设置title在button上的位置(上top,左left,下bottom,右right)
// [button setContentEdgeInsets:UIEdgeInsetsMake(70, 0, 0, 0)];//
// button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;//设置button的内容横向居中。。设置content是 title和image一起变化
[button addTarget:self action:@selector(tap) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
//button相应的事件
-(void)tap {
NSLog(@"tap a button");
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"hello" message:@"willingseal" delegate:self cancelButtonTitle:@"ok" otherButtonTitles: nil nil];
[alertView show];
}
相关推荐
在UIButton的默认设置下,image和title可能会按照系统预设的方式排列,但这个库允许我们更自由地控制它们的位置和间隔。ZJCustomButton提供了自定义的方法,使得我们可以一次性设置image和title的布局,而无需繁琐的...
通常,一个UIButton的title和image默认是叠加在一起的,有时我们需要自定义它们的位置,比如让图片在左边,文字在右边,或者反过来。这个扩展可能提供了这样的便利,只需一行代码就可以实现。例如,它可能有一个方法...
最后,如果需要在按钮上同时显示文字和图片,可以使用`setTitle(_:for:)`方法设置按钮的文字,并通过调整`titleEdgeInsets`和`imageEdgeInsets`来调整文字和图片的相对位置。 ```swift button.setTitle("点击我", ...
在iOS开发中,经常需要对UI元素进行个性化定制,其中包括对文字的展示方式。本教程将深入探讨如何实现UIButton和UILabel的文字旋转(倾斜)效果,让应用界面更具吸引力和独特性。 首先,我们要理解旋转(倾斜)的...
这两个属性都是`UIEdgeInsets`类型,可以分别调整四个边距,从而改变文字和图片在按钮内的位置。例如,如果想让图片位于文字下方,可以这样设置: ```swift let button = YLButton() button.setTitle("点击我", for...
通过设置约束(constraints),可以确保文本和图片在按钮内部的相对位置不会因为屏幕尺寸变化而改变。 4. **Stack View**: 如果有多个按钮需要排列,可以考虑使用UIStackView。Stack View可以自动处理子视图的布局...
接着,遍历titlesArr数组,对于每个元素,创建一个UIButton,设置其标题、背景图片、文字颜色、图片边距和文字边距。这里使用了UIEdgeInsets来调整图片和文字的位置。最后,通过行号(row)和列号(loc)计算出每个...
为了适应不同的用户界面需求,可以设置按钮的背景图片、文字颜色等属性,这些都可以通过实例方法来进行调整。 #### 配置边距 (ConfiguringEdgeInsets) `contentEdgeInsets`属性允许开发者调整按钮内部元素与边界的...
这篇教程将深入讲解如何在iOS应用中使用UIButton,并通过实例演示其基本用法。 首先,我们了解UIButton的基本概念。UIButton是UIKit框架的一部分,继承自UIControl类,提供了多种样式和行为,如系统默认的圆形、...
`EdgeInsets`在iOS中由UIEdgeInsets结构体表示,包含四个部分:上(top)、左(left)、下(bottom)和右(right)。通过调整这四个值,我们可以将按钮的标题或图片相对于其边框进行对齐、居中或者偏移。 例如,...
利用的方法也是UIButton本身的固有属性UIEdgeInsets,设置图片和文字的相对位置,以达到常用的图文并排的按钮效果。 使用方法: 1. 在需要用到的地方: #import "ImageTextButton.h" 定义按钮 @property (nonatomic,...
2. `resizingMode`(UIImageResizingMode):决定了图片在拉伸时的行为。`UIImageResizingModeStretch`模式会简单地拉伸图片的所有部分,而`UIImageResizingModeTile`模式则会重复图片的内容来填充更大的区域。 ...
总之,实现iOS中的微信红点显示功能主要涉及对UIView的扩展,利用CALayer来创建红点,并通过自定义属性和方法来控制其显示、位置和颜色。这种设计思路简洁高效,易于在项目中复用,大大提升了开发效率。