对非公开的UIButton和UIBarButtonItem风格的使用

     在网上闲逛,无意中得知如此神奇的一个秘密。UIButton 的type在官方文档是这样定义的:

typedef enum {
   UIButtonTypeCustom = 0,
   UIButtonTypeRoundedRect,//圆角矩形按钮
   UIButtonTypeDetailDisclosure,//详情显示按钮
   UIButtonTypeInfoLight,//高亮背景显示信息按钮
   UIButtonTypeInfoDark,//暗淡背景显示信息按钮
   UIButtonTypeContactAdd,//添加联系人按钮
} UIButtonType;
    那么 ,你以为UIButton就只有官方文档所提供的那几种风格么?错啦!

   试试下面的代码吧:

 UIButton *myButton=[UIButton buttonWithType:101];
    myButton.frame=CGRectMake(0, 0, myButton.frame.size.width, myButton.frame.size.width);
    [myButton setTitle:@"水果" forState:UIControlStateNormal];
    [self.view addSubview:myButton];
      同样的,UIBarButtonItem也不只官方文档所提供的那24种风格,当然你可以自定义View,那样的就随意多了去了。我这里说的是水果公司没有公开的几种风格。试试下面的代码:

NSMutableArray *myitems = [NSMutableArray array];
UIBarButtonItem *item = nil;
for (int i = 100; i <= 109; i++) {
    item = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:i target:nil action:nil];
    item.style = UIBarButtonItemStyleBordered;
    [myitems addObject:item];
}
item = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:110 target:nil action:nil];
item.style = UIBarButtonItemStylePlain;
[myitems addObject:item];
toolbar.items = myitems;
    上面的运行结果为:

    UIButton 101 风格


    UIBarButtonItem100~110风格  


    经测试,在UIButton中可以使用100、101、102、103四种非公开的风格,其中103以上都是一样的。也是说你指定103和指定110没有差别。

   而UIBarButtonItem的非公开风格,一共9种,其定义为:

100	 UIButtonBarLocate.png
101	 UIButtonBarArrowLeft.png
102	 UIButtonBarArrowRight.png
103	 UIButtonBarArrowUp.png
104	 UIButtonBarArrowDown.png
105	 UIButtonBarArrowLeft.png
106	 UIButtonBarArrowRight.png
107	 UIButtonBarPreviousSlide.png
108	 UIButtonBarNextSlide.png
   可以看出, (101,102与105,106相同)。至于水果为何会留这么一个“洞穴”,我也就不知道了,暂时还悟不透。

   注:以上内容参考了易飞扬大哥的博客,易飞扬大哥是很牛气的程序员,他的博客地址是:http://www.yifeiyang.net。据我的观察,在程序员的分级中【IT领袖:年入过亿(例如任正非、马化腾、李彦宏、丁磊、马云等)IT大哥:年入千万(级别次于以上几位大佬的公司老板)IT精英:年入百万(各IT公司副总裁级别人物,包括COO、CTO等,大多为职业经理人)IT人才:年入50万(各IT公司总监级别人物,有房有车)IT工程师:年入20万(高级经理级别,有房贷,生活压力大)IT民工:年入10万(经理级别,基本无房,生活压力大)码农:年入6万到10万(工作三四年,租房,继续混日子)码奴:年入3万到6万(工作一两年,租房,混日子)码畜:年入低于3万(刚毕业的,租房,傻乐)】飞扬哥应该是人才以上的。


  

你可能感兴趣的:(iOS开发)