Code Monkey home page Code Monkey logo

ios-pro's People

Contributors

dwarven avatar stephenzhuang avatar tangqiaoboy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ios-pro's Issues

一些蛋疼的地方

一些长的命令,没有一个地方能复制命令吗?
例如第32页尾开始到33页头的那一坨命令,太长了

勘误

第081页,倒数第二行(C++11 提供了基于引用计数的智能指针 share_prt).这里面应该将share_prt改为share_ptr

勘误

p119 #import (StoreKit/StoreKit.h) 括号错了
p120 使用了viewDidUnload
p150 只解释了1到3,4到6是没解释还是排版漏了?

Reveal调试

我觉的动态加载libReveal.dylib 是更好的办法,不会修改工程文件.

官方步骤:
1.打开工程,选择 View → Navigators → Show Breakpoint Navigator。
在面板左下角,点击 + 按钮并选择Add Symbolic Breakpoint
2.Adding Symbolic Breakpoint to Xcode project,在 Symbol 输入区内输入 UIApplicationMain 。
点击 Add Action 按钮, 确认 Action 被设置为 Debugger Command。
3.将以下内容拷贝到 Action 的输入区内:
expr (Class)NSClassFromString(@"IBARevealLoader") == nil ? (void )dlopen("/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib", 0x2) : ((void)0)
Note: 请确认Reveal.app的路径信息符合您Mac的实际位置。
4.选中 Automatically continue after evaluating actions 选项。
5.右击刚才新创建的断点,选择 Move Breakpoint To → User → Moving the Breakpoint to the User
您可以像其他断点一样,禁用或启用此断点。All done!
Note:用户级别断点在所有的Xcode工程中都可以使用。现在在iOS模拟器上构建并运行您的应用。

地址:http://support.revealapp.com/kb/getting-started/revealxcodereveal

勘误

第77页,"appledoc -help" 应该是 "appledoc --help"
两道杠

P136

只需要扫描acess log => access log

勘误

您好,page86第一句话中的“与”是不是需要改成“又”。

page114

修改UI控件的字体建议放在kCTFontDescriptorMatchingDidFinish下,否则第一次进入下载完成后字体显示不出来,要等到再次进入才能看到变化

下载的CoreTextDemo中定制文字颜色无效问题

大神您好,最近在拜读您的 《基于 CoreText 的排版引擎:基础》,然后https://raw.githubusercontent.com/tangqiaoboy/iOS-Pro/master/DemoProjects/CoreText.zip 下载的CoreTextDemo里面,我测试的时候发现,通过range修改富文本的颜色无效,但是设置富文本的字体大小有效果!麻烦您能测试看一下吗?

测试步骤如下:

  1. 下载了CoreText的zip包
  2. 将ViewController里viewDidload的代码改成如下代码即可,我测试的时候,文字颜色改变不了,但是我将设置颜色改成设置字体大小可以生效
  • (void)viewDidLoad
    {
    [super viewDidLoad];

    CTFrameParserConfig *config = [[CTFrameParserConfig alloc] init];
    config.width = self.ctView.width;
    config.textColor = [UIColor blackColor];

    NSString *content =
    @" 对于上面的例子,我们给 CTFrameParser 增加了一个将 NSString 转 "
    " 换为 CoreTextData 的方法。"
    " 但这样的实现方式有很多局限性,因为整个内容虽然可以定制字体 "
    " 大小,颜色,行高等信息,但是却不能支持定制内容中的某一部分。"
    " 例如,如果我们只想让内容的前三个字显示成红色,而其它文字显 "
    " 示成黑色,那么就办不到了。"
    "\n\n"
    " 解决的办法很简单,我们让CTFrameParser支持接受 "
    "NSAttributeString 作为参数,然后在 NSAttributeString 中设置好 "
    " 我们想要的信息。";
    NSDictionary *attr = [CTFrameParser attributesWithConfig:config];
    NSMutableAttributedString *attributedString =
    [[NSMutableAttributedString alloc] initWithString:content
    attributes:attr];
    [attributedString addAttribute:NSForegroundColorAttributeName
    value:[UIColor redColor]
    range:NSMakeRange(0, 7)];

    CoreTextData *data = [CTFrameParser parseAttributedContent:attributedString
    config:config];
    self.ctView.data = data;
    self.ctView.height = data.height;
    self.ctView.backgroundColor = [UIColor yellowColor];
    }

CoreTextDemo Bug

CoreText Demo对于点击位置有一定偏差(测试上看来是x轴固定有半个字符大小的偏移),
即:在[CoreTextUtils touchContentOffsetInView: atPoint: data:] 中输出idx可以看到
点击某个字的前半部分,输出idx为当前字形的idx,点击这个字的后半部分,输出为下一个字形的idx,
虽然在真机操作的时候手指精度没这么高,但是模拟器可以操作到这个精度,而且这样的偏差可能导致一些意想不到的问题

192页错误

18.2.8 ,第6行,而master分支增加了一个名为ApeDropDownRightArrow.png的资源文件,此处应为gDifficultyBar.pn ?我看文件里面是这个

11.2.4后台运行

让程序在后台长久运行的示例代码如下:

- (void)applicationDidEnterBackground:(UIApplication *)application {
  [self beingBackgroundUpdateTask];
 //在这里加上你需要长久运行的代码
  [self endBackgroundUpdateTask];
}

- (void)beingBackgroundUpdateTask {
    self.backgroundUpdateTask =  [[UIApplication shareApplication] beginBackgroundTaskWithExpirationHandler:^{
    [self endBackgroundUpdateTask];
}];
}

- (void)endBackgroundUpdateTask {
    [[UIApplication sharedApplication]  endBackgroundTask:self.backgroundUpdateTask];
    self.backgroundUpdateTask = UIBackgroundTaskInvalid;
}

1.作者第一个方法是不是想写成beginBackgroundUpdateTask以与end对应啊?
2.在beingBackgroundUpdateTask的expirationHandler中有调用endBackgroundUpdateTask,而在applicationDidEnterBackground中也有调用,这样重复调用不会有问题么?

章节18.7.1 内容未说清楚

18.7.1 删除未使用的图片资源

1.括号没括上 :P
2.脚本在哪里运行没说清楚

我的理解是,应该放在xcode里运行该脚本吧,这样每次build都会删除。

截图

messages image 1440450885

添加脚本代码

Hi Tang,

拜读了您的书,书上有很多脚本代码,不知是否可以也放到github上?

Reveal连接模拟器方式失效

巧兄,按照书中方式关联到reveal,并不能在reveal中看到想要调试的iOS程序界面... 是连接方式有变化吗?

UIWindow的demo有错

错误描述

在github上下载UIWindow.zip解压后打开,运行程序在6splus的模拟器上,直接崩溃

解决方法

PasswordInputWindow.m中的initWithFrame:中添加一行代码:

 self.rootViewController = [UIViewController new]    

仍然存在的疑虑

为什么这样就会不崩溃了,原理是什么,求作者解答.

勘误 P125

P125 倒数第 3 行,“它比 MGTemplateEngine、CGMustache 的功能更简单。”,与上一句有歧义。

136页有错误

136页有错误,第一行末尾,一嗨租车虽然已经修改了登录协议,此处根据上下文应该是神州租车

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.