一、接下来,我们接着来说这个Button的问题,
1.首先,我要做的事情,就是让它们两个去交换位置,
那么这个时候,我要去自定义一个东西,
然后,我现在要来到发现这个页面的View里边,我要去自定义一个Button,
New一个File,
来一个Cocoa Touch Class,
然后,继承的是UIButton,叫做HMGroupBuyButton,
这是一个View,MVC啊,这是一个View,
然后呢,我们现在啊,是想让这个button,
的子控件,这个button里面,应该有两个子控件吧,
1)一个imageView
2)一个Label
button内部是有两个控件的啊,设置文字、设置图片、都是给这两个属性设置的,
我现在要给它们两个子控件,去交换位置,去更改frame,那么,我们应该在哪个方法里面去写,
在layoutSubviews方法里面去写啊,
你现在呢,涉及到子View的这个frame的改变,应该直接在layoutSubviews里面去写,它肯定会去调用的,
所以呢,直接在这儿啊,直接去写layoutSubviews:
- (void)layoutSubviews{
}
上来,第一句话,[super layoutSubviews];
// 交换btn 内部控件的位置
然后,首先啊,我们这个self,是什么,就是这个button,没错儿吧,
我们说,有一个图片框啊,是self.imageView,
是这个黄色三角所在的位置啊,
然后呢,还有一个titleLabel,是这个全部彩种四个文字的位置啊,
那么,这两个东西,我们应该怎么着去给它改变,
画一个图啊,
这个呢,是图片的位置,这个呢,是Label的位置,
我现在希望让Label跑到这儿,图片跑到这儿,
那么,Label的X,我应该改为多少,x = 0,吧,
那么,图片的X,我应该改为多少,x = Label的宽,吧,
我们先把注释写上,
1)// label x = 0
2)// imageView x = label.width
应该是这个样子的,
那这个里边,我们直接让Label的x = 0,让Label的frame其中的一项等于0,我们说,frame是一个结构体,结构体不能直接改,要去先去取一下,再去改一下,再去赋值一下,三步,对吧,
1)// 获取Label的frame