一、接下来,我们接着来说这个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