`
stephen830
  • 浏览: 3011359 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

iOS - UIButton(UIEdgeInsets)/设置button上的文字和图片 在定义位置

 
阅读更多

 

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];  

}

 

分享到:
评论

相关推荐

    ios-一句代码设置UIButton的image和title的左右上下布局以及image和title的间距.zip

    在UIButton的默认设置下,image和title可能会按照系统预设的方式排列,但这个库允许我们更自由地控制它们的位置和间隔。ZJCustomButton提供了自定义的方法,使得我们可以一次性设置image和title的布局,而无需繁琐的...

    ios-swift写的button中title和image的位置.zip

    通常,一个UIButton的title和image默认是叠加在一起的,有时我们需要自定义它们的位置,比如让图片在左边,文字在右边,或者反过来。这个扩展可能提供了这样的便利,只需一行代码就可以实现。例如,它可能有一个方法...

    ios-按钮图片的位置.zip

    最后,如果需要在按钮上同时显示文字和图片,可以使用`setTitle(_:for:)`方法设置按钮的文字,并通过调整`titleEdgeInsets`和`imageEdgeInsets`来调整文字和图片的相对位置。 ```swift button.setTitle("点击我", ...

    UIButton,UILabel文字旋转(倾斜)

    在iOS开发中,经常需要对UI元素进行个性化定制,其中包括对文字的展示方式。本教程将深入探讨如何实现UIButton和UILabel的文字旋转(倾斜)效果,让应用界面更具吸引力和独特性。 首先,我们要理解旋转(倾斜)的...

    swift-YLButton自定义按钮文字图片位置随意定制

    这两个属性都是`UIEdgeInsets`类型,可以分别调整四个边距,从而改变文字和图片在按钮内的位置。例如,如果想让图片位于文字下方,可以这样设置: ```swift let button = YLButton() button.setTitle("点击我", for...

    ios-灵活的button.zip

    通过设置约束(constraints),可以确保文本和图片在按钮内部的相对位置不会因为屏幕尺寸变化而改变。 4. **Stack View**: 如果有多个按钮需要排列,可以考虑使用UIStackView。Stack View可以自动处理子视图的布局...

    IOS自定义UIButton九宫格效果

    接着,遍历titlesArr数组,对于每个元素,创建一个UIButton,设置其标题、背景图片、文字颜色、图片边距和文字边距。这里使用了UIEdgeInsets来调整图片和文字的位置。最后,通过行号(row)和列号(loc)计算出每个...

    UIButton_Class

    为了适应不同的用户界面需求,可以设置按钮的背景图片、文字颜色等属性,这些都可以通过实例方法来进行调整。 #### 配置边距 (ConfiguringEdgeInsets) `contentEdgeInsets`属性允许开发者调整按钮内部元素与边界的...

    ios开发按钮控件使用实例

    这篇教程将深入讲解如何在iOS应用中使用UIButton,并通过实例演示其基本用法。 首先,我们了解UIButton的基本概念。UIButton是UIKit框架的一部分,继承自UIControl类,提供了多种样式和行为,如系统默认的圆形、...

    button的EdgeInsets

    `EdgeInsets`在iOS中由UIEdgeInsets结构体表示,包含四个部分:上(top)、左(left)、下(bottom)和右(right)。通过调整这四个值,我们可以将按钮的标题或图片相对于其边框进行对齐、居中或者偏移。 例如,...

    ImageTextButton是继承于UIButton的按钮

    利用的方法也是UIButton本身的固有属性UIEdgeInsets,设置图片和文字的相对位置,以达到常用的图文并排的按钮效果。 使用方法: 1. 在需要用到的地方: #import "ImageTextButton.h" 定义按钮 @property (nonatomic,...

    iOS图片实现可拉伸不变形的处理操作

    2. `resizingMode`(UIImageResizingMode):决定了图片在拉伸时的行为。`UIImageResizingModeStretch`模式会简单地拉伸图片的所有部分,而`UIImageResizingModeTile`模式则会重复图片的内容来填充更大的区域。 ...

    iOS中类似微信红点显示功能

    总之,实现iOS中的微信红点显示功能主要涉及对UIView的扩展,利用CALayer来创建红点,并通过自定义属性和方法来控制其显示、位置和颜色。这种设计思路简洁高效,易于在项目中复用,大大提升了开发效率。

Global site tag (gtag.js) - Google Analytics