//
// ViewController.m
// 09-UIButton内部子控件的调整
//
// Created by xiaomage on 15/12/30.
// Copyright © 2015年 小码哥. All rights reserved.
// #import "ViewController.h"
#import "XMGButton.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad];
// 1.1 创建按钮
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; // 1.2 设置frame
button.frame = CGRectMake(, , , );//不设置fram看不见 // 1.3 设置背景颜色
button.backgroundColor = [UIColor purpleColor]; // 1.4 设置文字
[button setTitle:@"普通按钮" forState:UIControlStateNormal]; // 1.5 设置内容图片
[button setImage:[UIImage imageNamed:@"miniplayer_btn_playlist_normal"] forState:UIControlStateNormal]; // 1.6 改变位置
button.imageView.backgroundColor = [UIColor yellowColor];
button.titleLabel.backgroundColor = [UIColor blueColor]; // 注意: 在按钮外面改的尺寸,按钮的内部都会覆盖掉
/*
button.titleLabel.frame = CGRectMake(0, 0, 100, 70);
button.imageView.frame = CGRectMake(100, 0, 70, 70);
*/ [button titleRectForContentRect:CGRectMake(, , , )];
[button imageRectForContentRect:CGRectMake(, , , )]; [self.view addSubview:button];//不连线,就通过addSubview。
} @end
//
// XMGButton.h
// 09-UIButton内部子控件的调整
// #import <UIKit/UIKit.h> @interface XMGButton : UIButton @end
//
// XMGButton.m
// 09-UIButton内部子控件的调整
// #import "XMGButton.h" @implementation XMGButton - (instancetype)initWithFrame:(CGRect)frame{
if (self = [super initWithFrame:frame]) {
// 文本居中
self.titleLabel.textAlignment = NSTextAlignmentCenter;
// 改变图片的内容模式
self.imageView.contentMode = UIViewContentModeCenter;
}
return self;
} #pragma mark - 方式一
/**
* 重写两个方法: 不要调用super,就是要重写掉
* contentRect: 内容的尺寸,内容包括(imageView和label)
*/
/*
- (CGRect)titleRectForContentRect:(CGRect)contentRect{
return CGRectMake(0, 0, 100, 70);
} - (CGRect)imageRectForContentRect:(CGRect)contentRect{
return CGRectMake(100, 0, 70, 70);
}
*/ #pragma mark - 方式二
- (void)layoutSubviews{
[super layoutSubviews];
// 设置子控件的位置
self.titleLabel.frame = CGRectMake(, , , );
self.imageView.frame = CGRectMake(, , , );
} @end

ios24--改变button的文字和图片的更多相关文章

  1. Android实现自定义带文字和图片的Button

    Android实现自定义带文字和图片的Button 在Android开发中经常会需要用到带文字和图片的button,下面来讲解一下常用的实现办法. 一.用系统自带的Button实现 最简单的一种办法就 ...

  2. iOS Button 上文字图片位置的设置

    1. 添加图片+文字/文字+图片 ,不分前后,图片默认在文字前边 加空格隔开 UIButton * button =[[UIButton alloc] initWithFrame:CGRectMake ...

  3. 【Android】Android实现自定义带文字和图片的Button

    在Android开发中经常会需要用到带文字和图片的button,下面来讲解一下常用的实现办法. 一.用系统自带的Button实现 最简单的一种办法就是利用系统自带的Button来实现,这种方式代码量最 ...

  4. 【转】UGUI之用脚本动态的改变Button的背景图片 和 颜色

    http://blog.csdn.net/u014771617/article/details/45102701 public Button button;void Start(){ColorBloc ...

  5. android带有文字的图片按钮的两种实现方式

    android带有文字的图片按钮的两种实现方式 1). TextView对Button用相对布局,这要要求按钮的背景图片要留下空白位置给文字.这种方式开发比较简单,适合做一些风格一致的Button. ...

  6. iOS·UIButton如何文字在下图片在上

    创建子类继承自UIButton,在layoutSubviews方法中改变文字和图片的位置就可以了,同理,稍作改变,可以写出文字在上图片在下.本文只给出文字在下图片在上的代码 -(void)layout ...

  7. Android(java)学习笔记139:在TextView组件中利用Html插入文字或图片

    首先我们看看代码: 1.activity_main.xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/r ...

  8. Android应用程序之间共享文字和图片(一)

    以下为TestReceiveShare1工程 MainActivity如下: package cn.testreceiveshare1; import java.util.ArrayList; imp ...

  9. Android应用程序之间共享文字和图片(二)

    MainActivity如下: package cn.testshare1; import java.io.File; import java.util.ArrayList; import andro ...

随机推荐

  1. ES5和ES6新的操作数组的方法(常用)

    // 普通的for循环// var arr = ['张飞', '赵云', '马超', '刘备']// for (var i = 0; i < arr.length; i++) {// conso ...

  2. 零基础入门学习Python(11)--列表:一个打了激素的数组(2)

    前言 上节课我们介绍一个打了激素的数组,叫做列表.列表我们比作一个大仓库,你所能够具现化的东西,都可以往里面扔,它包罗万象.另外还介绍了三个往列表添加元素的方法,分别是: append(),exten ...

  3. 深入React技术栈之setState详解

    抛出问题 class Example extends Component { contructor () { super() this.state = { value: 0, index: 0 } } ...

  4. [bzoj1208][HNOI2004][宠物收养所] (平衡树)

    Description 最近,阿Q开了一间宠物收养所.收养所提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物.每个领养者都希望领养到自己满意的宠物,阿Q根据领养者的要求通过他自己发明的一个特 ...

  5. 开发调式时生成dump文件

    开发调式时,对程序生成dump文件:1:需要生成的时机,加Thread.sleep(600*1000).2:打开jvisualvm找到该程序进程号.3:jmap.

  6. Microsoft Azure 资料整理

    鉴于Microsoft Azure的技术迭代更新相当快,所以推荐大家还是以官方文档为准. 以Global Azure 的为主,Mooncake版本自行删减 首先推荐Azure for MSDN htt ...

  7. 在win10配置环境变量

    从win7升级成win10后找不到在哪配置环境变量...手动再见ヾ( ̄▽ ̄)Bye~,废话不多说,下面开始图文模式: 1)打开文件资源管理器,点左上角的"计算机"

  8. [BZOJ1264][AHOI2006]基因匹配Match(DP + 树状数组)

    传送门 有点类似LCS,可以把 a[i] 在 b 串中的位置用一个链式前向星串起来,由于链式前向星是从后往前遍历,所以可以直接搞. 状态转移方程 f[i] = max(f[j]) + 1 ( 1 &l ...

  9. 解决Android Studio2.0不能使用HttpClient

    在build.gradle中的android {}中加上useLibrary 'org.apache.http.legacy'

  10. JVM(五):探究类加载过程-上

    JVM(五):探究类加载过程-上 本文我们来研究一个Java字节码文件(Class文件)是如何加载入内存中的,在這個过程中涉及类加载过程中的加载,验证,准备,解析(连接),初始化,使用,销毁过程,并探 ...