JXTabButton.m 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. //
  2. // JXTabButton.m
  3. // shiku_im
  4. //
  5. // Created by flyeagleTang on 14-5-17.
  6. // Copyright (c) 2014年 Reese. All rights reserved.
  7. //
  8. #import "JXTabButton.h"
  9. #import "JXBadgeView.h"
  10. #import "FLAnimatedImageView.h"
  11. #import "FLAnimatedImage.h"
  12. #define ICON_SIZE 22
  13. @implementation JXTabButton
  14. @synthesize iconName,selectedIconName,backgroundImageName,selectedBackgroundImageName,textColor,selectedTextColor,bage,text,isTabMenu;
  15. - (void)show
  16. {
  17. self.backgroundColor = [UIColor clearColor];
  18. _icon = [[FLAnimatedImageView alloc] initWithFrame:CGRectMake((self.frame.size.width-ICON_SIZE)/2, THE_DEVICE_HAVE_HEAD ? 10 : 7, ICON_SIZE, ICON_SIZE)];
  19. _lbTitle = [[UILabel alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(_icon.frame)+(THE_DEVICE_HAVE_HEAD ? 8 : 2), self.frame.size.width, 12)];
  20. _lbBage = [[JXBadgeView alloc] initWithFrame:CGRectMake(_icon.frame.origin.x+ICON_SIZE-7, THE_DEVICE_HAVE_HEAD ? 8 : 5, 20, 20)];
  21. if ([iconName containsString:@"http:"]) {
  22. [_icon sd_setImageWithURL:[NSURL URLWithString:iconName]];
  23. }else if ([iconName containsString:@".gif"]){
  24. FLAnimatedImage *image= [FLAnimatedImage animatedImageWithGIFData:[NSData dataWithContentsOfURL:[NSURL URLWithString:iconName]]];
  25. _icon.animatedImage = image;
  26. } else {
  27. [_icon setImage:[UIImage imageNamed:iconName]];
  28. }
  29. _icon.userInteractionEnabled = NO;
  30. _lbTitle.text = text;
  31. _lbTitle.font = g_factory.font11;
  32. _lbTitle.textAlignment = NSTextAlignmentCenter;
  33. _lbTitle.userInteractionEnabled = NO;
  34. _lbBage.badgeString = bage;
  35. _lbBage.userInteractionEnabled = YES;
  36. _lbBage.didDragout = self.onDragout;
  37. _lbBage.delegate = self.delegate;
  38. _lbBage.tag = self.tag;
  39. if(backgroundImageName)
  40. [self setBackgroundImage:[UIImage imageNamed:backgroundImageName] forState:UIControlStateNormal];
  41. if(selectedBackgroundImageName)
  42. [self setBackgroundImage:[UIImage imageNamed:selectedBackgroundImageName] forState:UIControlStateSelected];
  43. [self addSubview:_icon];
  44. [self addSubview:_lbTitle];
  45. [self addSubview:_lbBage];
  46. }
  47. -(void)dealloc{
  48. // [_icon release];
  49. // [_lbTitle release];
  50. // [_lbBage release];
  51. self.iconName = nil;
  52. self.selectedIconName = nil;
  53. self.backgroundImageName = nil;
  54. self.selectedBackgroundImageName = nil;
  55. self.text = nil;
  56. self.textColor = nil;
  57. self.selectedTextColor = nil;
  58. self.bage = nil;
  59. // [super dealloc];
  60. }
  61. -(void)setSelected:(BOOL)selected{
  62. if(selected){
  63. // _icon.image = ThemeImage(selectedIconName);//[UIImage imageNamed:selectedIconName];
  64. if ([self.selectedIconName containsString:@"http:"]) {
  65. [_icon sd_setImageWithURL:[NSURL URLWithString:self.selectedIconName]];
  66. }else if ([self.selectedIconName containsString:@".gif"]){
  67. [_icon sd_setImageWithURL:[NSURL URLWithString:self.selectedIconName]];
  68. }else {
  69. _icon.image = [[UIImage imageNamed:self.selectedIconName] imageWithTintColor:THEMECOLOR]; ;
  70. }
  71. _lbTitle.textColor = selectedTextColor;
  72. }else{
  73. if ([iconName containsString:@"http:"]) {
  74. [_icon sd_setImageWithURL:[NSURL URLWithString:iconName]];
  75. }else if ([iconName containsString:@".gif"]){
  76. FLAnimatedImage *image= [FLAnimatedImage animatedImageWithGIFData:[NSData dataWithContentsOfURL:[NSURL URLWithString:iconName]]];
  77. _icon.animatedImage = image;
  78. }else {
  79. [_icon setImage:[UIImage imageNamed:iconName]];
  80. }
  81. _lbTitle.textColor = textColor;
  82. }
  83. [super setSelected:selected];
  84. }
  85. -(void)setBage:(NSString *)s{
  86. // if([s intValue]>99)
  87. // s = @"99+";
  88. if([s intValue]<=0)
  89. s = @"";
  90. _lbBage.badgeString = s;
  91. // if(![bage isEqualToString:s])
  92. // [bage release];
  93. // bage = [s retain];
  94. bage = s;
  95. }
  96. @end