Friday, October 4, 2013

TapkuLibraryのedgesForExtendedLayoutで悩んでいるすべての方へ

TapkuLibrary。。。すばらしいライブラリですよね。
デフォルトぽいカレンダーが数行で書けてしまいます。(僕はまだ表示させるところまでいっていない)

そんなTapkuLibraryですが、最近のiOS 7へのアップデートの影響でビルドが通らないことがあります。
その解決策です。

問題その1: "Property edgesForExtendedLayout not found on object"

ご心配には及びません。このエラーはすぐに解決できます。


まずこのエラーの原因ですが、iOS 7では存在するこのプロパティがiOS 6では存在しないことにより起きております。
証拠資料→UIViewController Class Reference


なので、「edgesForExtendedLayout」と書かれている行はすべてコメントアウトしてもかまいません。
本当はOSが7以上だったらで実行させたいところですが、xcodeをアップデートしないとこの行ではエラーがでるようになっているため、コメントアウトしか方法はありません。
iOS7かどうかを判別するif文はこちらのリンクをどうぞ
Writing iOS7 code that compiles against iOS 6 Base SDK

問題その2: "vImageBoxConvolve_ARGB8888"

これが問題になることもあります。「ARGB_8888」で検索してコメントアウトさせましょう。


無事、ビルドが通ればカレンダー表示!

問題なくビルドが通るようになったらいよいよviewにカレンダーを表示させます。


// viewController.h
#import 
#import "TapkuLibrary/TapkuLibrary.h"

@interface ViewController : UIViewController 

@end

// viewController.m
#import "ViewController.h"

@interface ViewController () {
    TKCalendarMonthView *calendar;
}

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    calendar = [[TKCalendarMonthView alloc]init];
    [self.view addSubview:calendar];
}

- (void)didReceiveMemoryWarning {
//省略
}

@end


これだけでなんとすばらしいカレンダーが表示されてしまいます!
このように!

おためしあれ〜〜

No comments:

Post a Comment