重写 button 的创建方法

//sxc时时改变
// self.videoM.progress = progress;
// if ([self.videoM.downloadStr
isEqualToString:@"100%"]) {
// self.downloadBtn.titleLabel.
text = @"已缓存";

  • //  }else{

  • //  self.downloadBtn.titleLabel.text
    = self.videoM.downloadStr;

// NSLog(@"%@=---------",self.v
ideoM.downloadStr);
// }//有两种重写方法,主要看你想怎么去创建

这个button
-(void)setFrame:(CGRect)frame
{

[super setFrame:frame];
[self.icon removeFromSuperview];
[self.textLabel removeFromSuperview];
[self.iconSelected

removeFromSuperview];

//创建一个正方形 的imageView (只读的不能
self. set方法不可以)

_icon= [[UIImageViewalloc]
initWithFrame:CGRectMake(0, 0,
frame.size.height, frame.size.height)];

[self addSubview:self.icon];

_iconSelected= [[UIImageViewalloc]
initWithFrame:self.icon.bounds];

self.iconSelected.hidden = YES;
[self addSubview:self.iconSelected];

_textLabel= [[UILabelalloc]
initWithFrame:CGRectMake(frame.size.height,
0, frame.size.width- frame.size.height,
frame.size.height)];

_textLabel.textColor= [UIColor
whiteColor];

_textLabel.font= [UIFont
systemFontOfSize:14];

[self addSubview:self.textLabel];
//第二种

//装逼的创建方法 只执行一次,单例方法也可用

//
//
//
initWithFrame:CGRectMake(0, 0,
frame.size.height, frame.size.height)];

  • //  [self addSubview:self.icon];
    //

    //

  • //  _textLabel = [[UILabel alloc]
    initWithFrame:CGRectMake(frame.size.height,
    0, frame.size.width - frame.size.height,
    frame.size.height)];

// [self
addSubview:self.textLabel];
//

static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{

_icon = [[UIImageView alloc]

// });

}

#pragma mark 重写selected方法,做图片更换
- (void)setSelected:(BOOL)selected
{

//父类怎么做 还怎么做我们只是在它原有的基础
上添加自己的方法

[super setSelected:selected];
//根据selected属性对图片做修改
if(selected) {

self.iconSelected.hidden = NO;

self.icon.hidden = YES;
}else

{
self.iconSelected.hidden = YES;
self.icon.hidden = NO;

}
}

//使用alloc创建
-
(instancetype)initWithFrame:(CGRect)frame
{

self= [superinitWithFrame:frame];
if(self) {

}
return self;

}

重写 button 的创建方法的更多相关文章

  1. 为什么要重写 hashcode 和 equals 方法?

    引言 以前面试的时候被面试官问到过这样一个问题: 你有没有重写过 hashCode 方法? 心里想着我没事重写哪玩意干啥,能不写就不写.嘴上当然没敢这么说,只能略表遗憾的说抱歉,我没写过. 撇了面试官 ...

  2. 为什么要重写hashcode和equals方法?初级程序员在面试中很少能说清楚。

    我在面试 Java初级开发的时候,经常会问:你有没有重写过hashcode方法?不少候选人直接说没写过.我就想,或许真的没写过,于是就再通过一个问题确认:你在用HashMap的时候,键(Key)部分, ...

  3. 为什么要重写equals和hashcode方法

    equals hashcode  当新建一个java类时,需要重写equals和hashcode方法,大家都知道!但是,为什么要重写呢? 需要保证对象调用equals方法为true时,hashcode ...

  4. (转)为什么要重写 hashcode 和 equals 方法?

    作者丨hsm_computer cnblogs.com/JavaArchitect/p/10474448.html 我在面试Java初级开发的时候,经常会问:你有没有重写过hashcode方法?不少候 ...

  5. 同过增强Connection类[重写了close的方法]实现的从连接池取出连接并放回连接的简单的实现流程

    package tk.dong.connection.util; import java.io.IOException;import java.io.InputStream;import java.i ...

  6. Thread之六:线程创建方法

    1.继承Thread类,重写该类的run()方法. 2.实现Runnable接口,并重写该接口的run()方法,该run()方法同样是线程执行体,创建Runnable实现类的实例,并以此实例作为Thr ...

  7. [Xcode 实际操作]九、实用进阶-(19)重写父类的绘图方法,使用图形上下文绘制自定义图形

    目录:[Swift]Xcode实际操作 本文将演示如何使用图形上下文,绘制自定义图形. 使用快捷键[Command]+[N]创建一个新的类文件. (在项目文件夹[DemoApp]上点击鼠标右键[New ...

  8. 为什么要重写hashcode和equals方法

    我在面试 Java初级开发的时候,经常会问:你有没有重写过hashcode方法?不少候选人直接说没写过.我就想,或许真的没写过,于是就再通过一个问题确认:你在用HashMap的时候,键(Key)部分, ...

  9. 内存泄漏避雷!你真的了解重写equals()和hashcode()方法的原因吗?

    基本概念 要比较两个对象是否相等时需要调用对象的equals() 方法: 判断对象引用所指向的对象地址是否相等 对象地址相等时, 那么对象相关的数据也相等,包括: 对象句柄 对象头 对象实例数据 对象 ...

随机推荐

  1. dateTimePicker的使用,时间控件

    <li> <label>促销时间<span class="imprt">*</span></label> <inp ...

  2. Python学习笔记4—列表

    列表定义 >>> a=['] >>> type(a) <type 'list'> >>> bool(a) #列表有值,则为true T ...

  3. UIButton的常见设置

    - (void)setTitle:(NSString *)title forState:(UIControlState)state;设置按钮的文字 - (void)setTitleColor:(UIC ...

  4. ganymedssh2 java执行linux命令

    需要下载ganymed-ssh2-262.jar package ganymed; import java.io.BufferedReader; import java.io.IOException; ...

  5. Sqlserver_自定义函数操作

    use Test go if exists( SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'gettime') AND type in ...

  6. java 内部类2(成员内部类)

    成员内部类: 特点:在其所在的外部类,的成员函数中,的类. 难点:看注释(涉及到jvm) /*test()执行完毕时,x2从内存中消失,inner的声明周,比x2长,inner还在访问,给人的感觉好像 ...

  7. linux笔记:用户配置文件

    用户信息文件:/etc/passwd功能:存放用户基本信息每一行代表一个用户. 第一字段:用户名称第二字段:密码标志(只是一个密码的占位符,表示该用户有密码,不存放真正的密码)第三字段:UID(用户I ...

  8. python中列表的操作

    list1 = ['A' , 'B' , 'C'] list1[0] ; list1[-1] # 取第一个和最后一个元素 list1[ : ] ; list1[ : len(list1)] # 取所有 ...

  9. iOS的常见文件及程序的启动原理

    一. iOS中常见文件 (一). Xcode6之前 创建项目,默认可以看见一个存放框架的文件夹 info文件以工程文件名开头,如:第一个项目-Info.plist 项目中默认有一个PCH文件 (二). ...

  10. MessageDigest简介

    一.概述 MessageDigest 类为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法.信息摘要是安全的单向哈希函数,它接收任意大小的数据,并输出固定长度的哈希值. MessageDi ...