2013-02-12 70 views
2

我正在嘗試將Tapku日曆添加到我的應用程序。我使用故事板,我添加了Tapku庫,導入了必要的文件並添加了TKCalendarMonthViewDelegate方法。我將日曆添加到名爲calendarView的UIView中。當我運行應用程序時,日曆不會出現,只是沒有任何內容的視圖。將Tapku日曆添加到應用程序

-(void)viewDidLoad 
{ 
[super viewDidLoad]; 
[self.navigationController setNavigationBarHidden:NO animated:YES]; 

self.navigationItem.hidesBackButton = YES; 
calendar = [[TKCalendarMonthView alloc] init]; 
calendar.delegate = self; 
calendar.dataSource = self; 
calendar.frame = CGRectMake(0, 0, calendar.frame.size.width, calendar.frame.size.height); 

// Ensure this is the last "addSubview" because the calendar must be the top most view layer 
[self.view addSubview:calendar]; 
[calendar reload]; 

// Do any additional setup after loading the view. 
} 

任何人都可以幫助我嗎?

+0

http://developinginthedark.com/posts/iphone-tapku-calendar-markers – iPatel 2013-02-12 14:26:24

+0

我已經使用過這個例子,我正努力將其添加到我的項目中 – 2013-02-12 15:39:09

+0

TapKu是否在xcode 5中工作 – 2014-10-16 13:24:09

回答

2

嘗試通過直接specifing幀點,這樣

calendar.frame = CGRectMake(0, 0, 320,400); 
1

如果要添加TKCalendarMonthView用故事板視圖控制器,那麼你不應該也被初始化TKCalendarMonthView的另一個實例在您的視圖控制器 - viewDidLoad方法。

在你的故事板:

  • 添加TKCalendarMonthView到您的視圖控制器。
  • 設置大小限制。
  • 將TKCalendarMonthView連接到視圖控制器中的插座(請參見下文)。

在您的視圖控制器:

添加一個出口的TKCalendarMonthView。

@interface YourViewController() <TKCalendarMonthViewDataSource, TKCalendarMonthViewDelegate> 
@property (weak, nonatomic) IBOutlet TKCalendarMonthView *calendarMonthView; 
@end 

在-viewDidLoad中,連接TKCalendarMonthView的委託和數據源。請注意,你也可以做到這一點的故事板,如果你第一次添加的註釋IBOutlet中的委託和DataSource屬性在TKCalendarMonthView.h

@implementation YourViewController 
... 
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
... 
    self.calendarMonthView.delegate = self; 
    self.calendarMonthView.dataSource = self; 

但是這些變化本身不會得到TKCalendarMonthView顯示日曆。原因是該視圖是由Storyboard初始化的,但是在由Storyboard加載時,沒有任何現有的-init方法被調用。所以你需要添加一個-initWithCoder:方法到TKCalendarMonthView.m。以下示例將調用default -init:方法。

-(id)initWithCoder:(NSCoder *)aDecoder 
{ 
    self = [self init]; 
    if (self) { 

    } 

    return self; 
} 

如果你這樣做了,你應該看到渲染日曆而不是空白視圖。