2010 Archives

《三页A4纸摄影教程》

| No Comments | No TrackBacks


作者:老蒋

科学家和工程师降低了摄影这个事的技术门槛,人人都能拍,要想拍的好一点也只需要很少的技术知识,我写的不准确,但是够用了。

Blackjack App on TV

| No Comments | No TrackBacks
GT Blackjack 今天发售,虽然是免费的,庆祝一下



gameing_on_tv.png

好玩的东西,哈哈

| No Comments | No TrackBacks
iPhone TV Out 视频



App 使用iPhone 3GS 录制视频

| No Comments | No TrackBacks
测试过程中发现- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo 这个方法不能用了,使用这个方法替代 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info;

测试代码在iPhone 3GS on OS X iPhone 3.1.2通过

- (BOOL) videoRecordingAvailable

{

if (![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) return NO;

return [[UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera] containsObject:@"public.movie"];

}



-(void)recordVideo

{

if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];

imagePicker.videoQuality = UIImagePickerControllerQualityTypeHigh;

imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;

imagePicker.delegate = self;

imagePicker.allowsEditing = YES;

imagePicker.videoMaximumDuration = 300.0f;

imagePicker.mediaTypes = [NSArray arrayWithObject:@"public.movie"];

[self presentModalViewController:imagePicker animated:YES];

}



}

- (void)video:(NSString *)videoPath didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo

{

if (!error) 

self.title = @"Saved!";

else 

CFShow([error localizedDescription]);

}


第一课


1. Introduction to Mac OS X, Cocoa Touch, Objective-C and Tools (January 5, 2010)

Software engineering, programming language, iPhone operating system, OS, objective c, cocoa touch, SDK, object oriented design, Apple, Macintosh, tools, frameworks, language, runtime, Xcode, Interface Builder, Foundation, UIKit, behavior, message, state,
下载


第二课


2. Objective-C and Foundation Framework (January 7, 2010)




Software engineering, application development, programming language, iPhone operating system, OS, objective c, cocoa touch, SDK, object oriented design, Apple, Macintosh, selector, function pointer, foundation classes, framework, string constant, collect

下载



第三课
3. Custom Classes, Object Lifecycle, Autorelease, Objective-C Properties (January 12, 2010)
Software engineering, application development, programming language, iPhone operating system, OS, objective c, cocoa touch, SDK, object oriented design, Apple, Macintosh, Xcode, phase, data, class, superclass, NSObject, public header file, private impleme

第四课
Building an Application; Model, View, Controller; Nib Files; Controls and Target-Action (January 14, 2010)
Software engineering, application development, programming language, iPhone operating system, OS, objective c, cocoa touch, SDK, object oriented design, Apple, Macintosh, Xcode, memory management, user interface, init, alloc, retain, release, autorelease,
原始视频源 (enclosure.mp4)

第五课
5. Views, Drawing, and Animation (January 19, 2010)
Software engineering, application development, programming language, iPhone operating system, OS, objective c, cocoa touch, SDK, object oriented design, Apple, Macintosh, Xcode, custom view, draw, graphics, UIResponder, event handling, superview, subview,
原始视频源 (enclosure.mp4)
第六课
Designing iPhone Applications, Model-View-Controller, View Controllers (January 21, 2010)
Software engineering, application development, programming language, iPhone operating system, OS, objective c, cocoa touch, SDK, object oriented design, Apple, Macintosh, Xcode, content organization, navigation bar, tab, views, data, logic, screenful, mod
下载地址:

NSXMLParserErrorDomain 76

| No Comments | No TrackBacks

2010-01-26 14:07:30.397 ePAD[1869:4e0b] parser error Error Domain=NSXMLParserErrorDomain Code=76 "Operation could not be completed. (NSXMLParserErrorDomain error 76.)", userInfo (null)

2010-01-26 14:07:30.397 ePAD[1869:4e0b] parse error = Error Domain=NSXMLParserErrorDomain Code=76 "Operation could not be completed. (NSXMLParserErrorDomain error 76.)"

iPhone TV Out 上图两张

| No Comments | No TrackBacks
早上刚刚拍的,还热乎呢

tvout.png
PAL 制式下输出不是很好有黑边,而且图像是黑白的 改成NTSC 后没有问题都解决了
ipod_app_pal.png

增加一张视频截图,视频中有电视,电视中有视频
iphone_tv.png

UITabBarController + UINavigationController
  点击TabBarItem 后,如果UINavigationController stack里面有多个viewcontroller
这个时候确省是popViewControllerAnimated 

客户项目需求点击后要求显示一些分类的button ,实现如下
重写 UITabBarController  delegate 下面的这个方法 

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController

{

// NSLog(@"good to see it");

if (self.selectedViewController == viewController ) {

if ([((UINavigationController*)viewController).visibleViewController  respondsToSelector:@selector(showCategoryBtns)]) {

[ (TableViewController*)(((UINavigationController*)viewController).visibleViewController) showCategoryBtns];

}

}

return YES;

}

UITableView next and pre 实现

| 2 Comments | No TrackBacks
In Detail ViewController 创建2个button,action如下

[preBtn addTarget:self action:@selector(pre:) forControlEvents:UIControlEventTouchDown];


[nextBtn addTarget:self action:@selector(next:) forControlEvents:UIControlEventTouchDown];


-(void)pre:(id)sender

{

//if ([controller preItem] != nil) {

[controller preItem:self];

[webView loadHTMLString:self.content baseURL:[NSURL URLWithString:@""]];

//[webView reload];

//}

}

-(void)next:(id)sender

{

//if ([controller nextItem] != nil) {

[controller nextItem:self];

[webView loadHTMLString:self.content baseURL:[NSURL URLWithString:@""]];

//[webView reload];

//}

}



对UITableView 使用category 增加一个方法,用来修改_selectedIndexPaths


@implementation UITableView (section)

-(void)setSelectRow:(NSUInteger)row section:(NSUInteger)asection

{

NSLog(@"row: %d: asection: %d",row,asection);

NSLog(@"selectedIndexPaths: %@",_selectedIndexPaths);

[_selectedIndexPaths removeLastObject];

[_selectedIndexPaths addObject:[NSIndexPath indexPathForRow:row inSection:asection]];

NSLog(@"selectedIndexPaths: %@",_selectedIndexPaths);

}

@end

最近的状态

| No Comments | No TrackBacks
昨天下午见了一个新客户, 谈得不错,准备下周开工的,不料今天下午来电话,项目Hold.

今天上午9点不到就去人民广场见朋友,在南京路上一家咖啡厅聊到中午,然后去南京路步行街边上吃了顿午饭。朋友晚上要会多伦多,带了个大箱子,非常不方便。聊天很happy。啥时候去多伦多逛逛去。

下周一有个小项目要签合同,还要跑出去,希望能顺利。小项目,转手了几次手,感觉没太大意思,先签下来再说。

之前的项目快收尾了,下周可能要多出去几天。