Space 脚本

# 脚本路径:/Users/xxx/sbin/workspace
# learn
open /Users/xxx/Downloads/前段

# coding
open /Users/xxx/AfterJM/LoanSpace/iosLetsL
open /Users/xxx/AfterJM/LoanSpace/Loan
open /Users/xxx/VoT/ziliao/素材/设计切图

# file
open /Users/xxx/VoT/notpad/assets

虽然都是查看电脑中文档,但是mac 系统的Finder 是个跟Windows 资源管理器很不一样的东东。平时使用过程中经常会保留一个主要的Finder 窗口,里面打开常用的标签窗口,这样即使重启电脑之后标签窗口还是会存在。

但是维护这么个窗口有时候开销还是很大的,进入一个目录之前总会不自觉判断一下那个更容易恢复,今天突然想到将其放入一个脚本中不就好了吗,之后遇到需要保留的常用标签可以放入,不用了可以直接关闭,方便快捷!

配套方案:
在命令行环境变量中添加:

alias editws="subl /Users/chunleiyan/sbin/workspace"

在之后需要编辑时直接命令行输入editws即可

IOS知识点

1、获取IOS StatusBar,NavigationBar,TabBar 高度

还是没有绕开要动态获取IOS系统的StatusBar ,NavigationBar以及TabBar高度的问题。之前我们提起过,使用UITableView时,当我们将NavigationController隐藏之后UITableView会自动为顶部添加一个边距,但是NavigationController 不隐藏时,UITableView直接添加到了NavigationBar的下面,也就没有保留那个边距。

同时底部存在Tabbar会隐藏掉UITableView的底部,这样列表滑动到底部时会被Tabbar隐藏了,同时由于UITableView的frame直接设置了self.view.bounds,UITableView并未显示完全还有StatusBar.height + NavigationBar.height的高度隐藏在屏幕之外。于是获取这三者高度变得很有必要了。

UITabBarController *tabBarController = [[UITabBarController alloc] initWithNibName:nil bundle:nil];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:tabBarController];

int statusBarHeight = [[UIApplication sharedApplication] statusBarFrame].size.height; 
int tabBarHeight = tabBarController.tabBar.bounds.size.height; 
int navigationBarHeight = navigationController.navigationBar.bounds.size.height;

如上,最核心的内容是获取对应的bar(tabBar 和navigationBar)类获取大小,而不是直接使用controller.viewbounds属性。

为什么不直接使用魔数 ?

StatusBarHeight = 20
NavigationBarHeight = 44
TabBarHeight = 49

要按苹果之前的脾气,使用魔数也无可厚非,但是除了个IphoneX之后,StatusBar的高度变化了,谁知道之后还会不会出IphoneXX系列,还是用api获取比较靠谱。

后记

拿人钱财,替人消灾。 应该正面Gank 遇到的难题了!