有关自定义tabbar遇到的坑

有关自定义tabbar详情可以参照这篇文章http://www.cnblogs.com/guitarandcode/p/5759208.html

但是这篇文章中出现了一个问题,就是运行出结果时发现本来在中间的按钮发生了偏离,但好像代码都没任何问题,这是为什么呢?

原因就是在重新排布tabbar自控件的layoutsubview里

//设置“+”按钮的位置

self.addButton.centerX = self.centerX;

self.addButton.centerY = self.height * 0.5 - 1.5 * AddButtonMargin;

//设置“+”按钮的大小为图片的大小

self.addButton.size = CGSizeMake(self.addButton.currentBackgroundImage.size.width, self.addButton.currentBackgroundImage.size.height);

我们可以看到,这段代码是先设置了button的center,再设置size,而起初没有设置size的button的尺寸即为(0,0),就相当于一个点,我们可以猜想,一个点的原点即origin和中心center是重合的,所以我们将button的center设为tabber的中心时,origin也将设为同样的位置,则此时再设置size,button的位置就回向右偏移(因为默认x轴,y轴 向右向下时正方向)。如果不懂也可以参照这篇文章

http://blog.csdn.net/make___/article/details/46534477

你可能感兴趣的:(有关自定义tabbar遇到的坑)