DKMessageBubbleFactory.m 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. //
  2. // DKMessageBubbleFactory.m
  3. // chatandvideotestframework
  4. //
  5. // Created by Dongke on 15/11/18.
  6. // Copyright © 2015年 dongke. All rights reserved.
  7. //
  8. #import "DKMessageBubbleFactory.h"
  9. #import "DKMacro.h"
  10. #import "DKConfigurationHelper.h"
  11. @implementation DKMessageBubbleFactory
  12. + (UIImage *)bubbleImageViewForType:(DKBubbleMessageType)type
  13. style:(DKBubbleImageViewStyle)style
  14. meidaType:(DKBubbleMessageMediaType)mediaType {
  15. NSString *messageTypeString;
  16. switch (style) {
  17. case DKBubbleImageViewStyleWeChat:
  18. // 类似微信的
  19. messageTypeString = @"weChatBubble";
  20. break;
  21. default:
  22. break;
  23. }
  24. //type=DKBubbleMessageTypeReceiving;
  25. switch (type) {
  26. case DKBubbleMessageTypeSending:
  27. // 发送
  28. messageTypeString = [messageTypeString stringByAppendingString:@"_sending"];
  29. break;
  30. case DKBubbleMessageTypeReceiving:
  31. // 接收
  32. messageTypeString = [messageTypeString stringByAppendingString:@"_receiving"];
  33. break;
  34. default:
  35. break;
  36. }
  37. switch (mediaType) {
  38. case DKBubbleMessageMediaTypePhoto:
  39. case DKBubbleMessageMediaTypeVideo:
  40. messageTypeString = [messageTypeString stringByAppendingString:@"_solid"];
  41. break;
  42. case DKBubbleMessageMediaTypeText:
  43. case DKBubbleMessageMediaTypeVoice:
  44. messageTypeString = [messageTypeString stringByAppendingString:@"_solid"];
  45. break;
  46. default:
  47. break;
  48. }
  49. if (type == DKBubbleMessageTypeReceiving) {
  50. NSString *receivingSolidImageName = [[DKConfigurationHelper appearance].messageTableStyle objectForKey:kDKMessageTableReceivingSolidImageNameKey];
  51. if (receivingSolidImageName) {
  52. messageTypeString = receivingSolidImageName;
  53. }
  54. } else {
  55. NSString *sendingSolidImageName = [[DKConfigurationHelper appearance].messageTableStyle objectForKey:kDKMessageTableSendingSolidImageNameKey];
  56. if (sendingSolidImageName) {
  57. messageTypeString = sendingSolidImageName;
  58. }
  59. }
  60. // UIImage *bublleImage = [UIImage imageNamed:[NSString stringWithFormat:@"%@",@"wechat"]];
  61. // UIEdgeInsets bubbleImageEdgeInsets = [self bubbleImageEdgeInsetsWithStyle:style];
  62. // UIImage *edgeBubbleImage =DK_STRETCH_IMAGE(bublleImage, bubbleImageEdgeInsets);
  63. UIImage *edgeBubbleImage=[[UIImage imageNamed:@"wechat"]stretchableImageWithLeftCapWidth:18 topCapHeight:10];
  64. return edgeBubbleImage;
  65. }
  66. + (UIEdgeInsets)bubbleImageEdgeInsetsWithStyle:(DKBubbleImageViewStyle)style {
  67. UIEdgeInsets edgeInsets;
  68. switch (style) {
  69. case DKBubbleImageViewStyleWeChat:
  70. // 类似微信的
  71. edgeInsets = UIEdgeInsetsMake(30, 30, 30, 30);
  72. break;
  73. default:
  74. break;
  75. }
  76. return edgeInsets;
  77. }
  78. @end