eseedo / iOSCourse

iOS开发初学者入门

Home Page:http://icode.fun/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Checklists项目待改进的地方

Pkuflint opened this issue · comments

你好,非常感谢您翻译了这个教程,讲的清晰明白而且幽默风趣。

在跟着做的过程中,发现了如下不完善的地方。(我大多数章节是用的Xcode7.x;最后几节用的Xcode8,从第19章开始有意识地收集和记录遇到的问题,所以之前遇到的问题,都没有记录。)列举如下:

1、第23章,按照教程采用了localizedStandardCompare方法,但是发现中文的排序貌似是按照首字的笔画排序的,而不是常见的首字母音序。

去模拟器的设置中,将模拟器的语言设置为简体中文,就是按照音序排序了。

2、第24章,ListDetailViewController中,第2个cell右侧的Image View无法拖到cell右侧,只会显示在cell下方,且无法修改大小。

直接在storyboard中选中那个cell,然后在attribute inspector中的image选项中选中任何一个图片。这样就添加了一个image到cell中,虽然image是在cell的左侧,而不像教材中实现的是在右侧。

接着选中这个image,在attribute insepector中image选项中已经选择的设置为空。

后来我发现可以直接把image或者label拖到storyboard左侧的那个导航栏里。但是拖进去的东西,无法移动其位置。

3、第24章,从ListDetailViewController的第2个cell中实现了到IconPickerViewController的segue后,虽然IconPickerViewController界面上方确实留出了一部分空白,但是并不能双击编辑导航栏标题。

我是直接去选中controller修改的title。

4、第26章,实现了教材中的localNotification方法后,根本就不会通知,在模拟器和真机上都不会,也不会打印出收到通知的日志。不知何故。

在AppDelegate.m中- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法里,在sheduleLocalNotification之前添加如下语句即可:[[UIApplication sharedApplication]registerUserNotificationSettings:localNotification.userInfo];

5、第27章,按照教材实现后,如果一开始就去点击checklistItem里面的textField,就会直接调用[self hideDatePicker]方法,这时就会崩溃

将textFieldDidBeginEditing方法中加入一个对picker是否可见的判断即可:- (void)textFieldDidBeginEditing:(UITextField *)textField{ if (_datePickerVisible == YES) { [self hideDatePicker]; }}

6、第27章,按照教材实现后,如果重复地点击dueDate那一行,就会产生多个picker,在你拨动日期时,会发现日期数字有重叠。

首先在ItemDetailViewController.m上新添加一个属性变量:UIDatePicker *_datePicker;

在showDatePicker方法中,将最后2行改为:_datePicker = (UIDatePicker *)[datePickerCell viewWithTag:100]; [_datePicker setDate:_dueDate animated:NO];

在hideDatePicker中最后一个语句前面,添加[_datePicker removeFromSuperview];

这样,在多次点击dueDate那一行后,日期选择器也不会出现文字重叠现象了。

7、第28章,按照教材去修改sheduleNotification方法,添加了UILocalNotification *localNotification = [[UILocalNotification alloc]init];去提示说,该类没有声明过。

在ChecklistItem.h顶部添加#import <UIKit/UIKit.h>就可以了。

8、按照教材写完sheduleNotification方法,到时间不会提醒。

因此需要先registerNotification。在[[UIApplication sharedApplication]scheduleLocalNotification:localNotification];之前添加如下代码即可:UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert categories:nil]; [[UIApplication sharedApplication]registerUserNotificationSettings: settings];

9、launchScreen的设置无效,最后是从launchScreen.storyboard中设置界面完成启动画面设置的。

真心希望更多人能从您的翻译教程中获益。

PS,github的这个日志系统太难用了,我从gitbook editor里复制进来,还需要进行大量的修改才能显示正常。