Skip to content
This repository has been archived by the owner on Oct 14, 2024. It is now read-only.

添加visibleViews,只显示一类View。[[MMPlaceHolderConfig defaultConfig].visible… #3

Merged
merged 1 commit into from
May 28, 2015

Conversation

mrdaios
Copy link
Contributor

@mrdaios mrdaios commented May 28, 2015

假如我现在需要某一类View的Size信息。
通过[MMPlaceHolderConfig defaultConfig].autoDisplay = YES;会把所有的显示出来,界面会很乱。
所以添加visibleViews,显示某一类的信息。

@adad184
Copy link
Owner

adad184 commented May 28, 2015

很好的提议 不过把contains判定 改成isKindOfClass会更好点 :)

adad184 added a commit that referenced this pull request May 28, 2015
添加visibleViews,只显示一类View。[[MMPlaceHolderConfig defaultConfig].visible…
@adad184 adad184 merged commit 5dafc64 into adad184:master May 28, 2015
@mrdaios
Copy link
Contributor Author

mrdaios commented May 29, 2015

如果用isKindOfClass。假如是UIView,会把UIButton,UIImageView等,继承UIView都会显示出来。

@adad184
Copy link
Owner

adad184 commented May 29, 2015

对 但是不排除有人有这种需求

所以我在你的基础上将visibleViews改成了visibleKindOfClasses和visibleMemberOfClasses

把使用的选择权给user自己决定 :)

@mrdaios
Copy link
Contributor Author

mrdaios commented May 31, 2015

恩,你这种不错。
我还是too young to simple.

@adad184
Copy link
Owner

adad184 commented May 31, 2015

想法真的很不错 确实是在实践中得出的需求
不过有一点我也没有搞定 就是如何不显示系统内部的class

其实我想加一个默认不显示系统内部view的开关 但是暂时好像做不到

我dig了一下 有部分是可以用"_UI"开头来区分的 但是有些 比如"UISwappableImageView " 这种 就完全没有办法了 这样的话 如果把visibleKindOfClasses设置成UIImageView.class 实际上还是会显示很多不必要的view

如果你有好的办法 可以继续pr :)

@mrdaios
Copy link
Contributor Author

mrdaios commented Jun 6, 2015

是否可以通过NSBundle来区分呢,是框架自带的View还是自定义的View呢

@adad184
Copy link
Owner

adad184 commented Jun 6, 2015

比如? 如何从NSBundle区分呢?

@mrdaios
Copy link
Contributor Author

mrdaios commented Jun 7, 2015

😄,你看这个行不行http://www.cocoachina.com/bbs/read.php?tid=170906

@adad184
Copy link
Owner

adad184 commented Jun 8, 2015

!! 试了一下 真可以诶 感谢!

@mrdaios
Copy link
Contributor Author

mrdaios commented Jun 8, 2015

😃

@adad184
Copy link
Owner

adad184 commented Jun 8, 2015

不过还是有个问题 一些基础的类型 比如UIImageView UIButton UILabel 这些 还是需要手动的过滤才行 因为上面这个判定 这些都会包含进去 不然 这些也不会显示 这样的话 autoDisplay就没太大意义了

@adad184
Copy link
Owner

adad184 commented Jun 8, 2015

而且我想了一下 假如是判断mianBundle的话 那如果用pod这种第三方的库的代码 似乎也会判断为系统view
刚验证了一下 貌似确实是这样 那这种办法也还是不够好

@adad184
Copy link
Owner

adad184 commented Jun 8, 2015

我刚又想了一下 其实只要

 [NSBundle bundleForClass:[_customClass class]] ==   [NSBundle bundleForClass:[UIView class]];

这样判断就可以知道是否是系统view了 :)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants