LookinDashboardBlueprint.h 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #ifdef SHOULD_COMPILE_LOOKIN_SERVER
  2. //
  3. // LookinDashboardBlueprint.h
  4. // Lookin
  5. //
  6. // Created by Li Kai on 2019/6/5.
  7. // https://lookin.work
  8. //
  9. #import <Foundation/Foundation.h>
  10. #import "LookinAttrIdentifiers.h"
  11. #import "LookinAttrType.h"
  12. /**
  13. 该对象定义了:
  14. - 每一个 Attr 的信息
  15. - 哪些 GroupID, SectionID, AttrID 是合法的
  16. - 这些 ID 的父子顺序,比如 LookinAttrGroup_Frame 包含哪些 Section
  17. - 这些 ID 展示顺序(比如哪个 Group 在前、哪个 Group 在后)
  18. */
  19. @interface LookinDashboardBlueprint : NSObject
  20. + (NSArray<LookinAttrGroupIdentifier> *)groupIDs;
  21. + (NSArray<LookinAttrSectionIdentifier> *)sectionIDsForGroupID:(LookinAttrGroupIdentifier)groupID;
  22. + (NSArray<LookinAttrIdentifier> *)attrIDsForSectionID:(LookinAttrSectionIdentifier)sectionID;
  23. /// 返回包含目标 attr 的 groupID 和 sectionID
  24. + (void)getHostGroupID:(inout LookinAttrGroupIdentifier *)groupID sectionID:(inout LookinAttrSectionIdentifier *)sectionID fromAttrID:(LookinAttrIdentifier)attrID;
  25. /// 返回某个 group 的标题
  26. + (NSString *)groupTitleWithGroupID:(LookinAttrGroupIdentifier)groupID;
  27. /// 返回某个 section 的标题,nil 则表示不显示标题
  28. + (NSString *)sectionTitleWithSectionID:(LookinAttrSectionIdentifier)secID;
  29. /// 当某个 LookinAttribute 确定是 NSObject 类型时,该方法返回它具体是什么对象,比如 UIColor 等
  30. + (LookinAttrType)objectAttrTypeWithAttrID:(LookinAttrIdentifier)attrID;
  31. /// 返回某个 LookinAttribute 代表的属性是哪一个类拥有的,比如 LookinAttrSec_UILabel_TextColor 是 UILabel 才有的
  32. + (NSString *)classNameWithAttrID:(LookinAttrIdentifier)attrID;
  33. /// 一个 attr 要么属于 UIView 要么属于 CALayer,如果它属于 UIView 那么该方法返回 YES
  34. + (BOOL)isUIViewPropertyWithAttrID:(LookinAttrIdentifier)attrID;
  35. /// 如果某个 attribute 是 enum,则这里会返回相应的 enum 的名称(如 @"NSTextAlignment"),进而可通过这个名称查询可用的枚举值列表
  36. + (NSString *)enumListNameWithAttrID:(LookinAttrIdentifier)attrID;
  37. /// 如果返回 YES,则说明用户在 Lookin 里修改了该 Attribute 的值后,应该重新拉取和更新相关图层的位置、截图等信息
  38. + (BOOL)needPatchAfterModificationWithAttrID:(LookinAttrIdentifier)attrID;
  39. /// 完整的名字
  40. + (NSString *)fullTitleWithAttrID:(LookinAttrIdentifier)attrID;
  41. /// 在某些 textField 和 checkbox 里会显示这里返回的 title
  42. + (NSString *)briefTitleWithAttrID:(LookinAttrIdentifier)attrID;
  43. /// 获取 getter 方法
  44. + (SEL)getterWithAttrID:(LookinAttrIdentifier)attrID;
  45. /// 获取 setter 方法
  46. + (SEL)setterWithAttrID:(LookinAttrIdentifier)attrID;
  47. /// 获取 “hideIfNil” 的值。如果为 YES,则当读取 getter 获取的 value 为 nil 时,Lookin 不会传输该 attr
  48. /// 如果为 NO,则即使 value 为 nil 也会传输(比如 label 的 text 属性,即使它是 nil 我们也要显示,所以它的 hideIfNil 应该为 NO)
  49. + (BOOL)hideIfNilWithAttrID:(LookinAttrIdentifier)attrID;
  50. /// 该属性需要的最低的 iOS 版本,比如 safeAreaInsets 从 iOS 11.0 开始出现,则该方法返回 11,如果返回 0 则表示不限制 iOS 版本(注意 Lookin 项目仅支持 iOS 8.0+)
  51. + (NSInteger)minAvailableOSVersionWithAttrID:(LookinAttrIdentifier)attrID;
  52. @end
  53. #endif /* SHOULD_COMPILE_LOOKIN_SERVER */