2017-03-20 7 views
0

FSCalendarView에서 선택한 셀의 위치를 ​​가져 오려고합니다. (FSCalendar 라이브러리). 비록 내가 화면에서 위치를 얻고 있지만 완벽한 위치가 아니기 때문에 그 날짜 셀의 팝업을 보여주고 싶다.FSCalendarVIew에서 선택한 DateCell의 위치를 ​​원합니다. 어떻게받을 수 있습니까?

#pragma mark - View Lifecycle 
- (void)viewDidLoad { 
[super viewDidLoad]; 
UITapGestureRecognizer *tapGesture = 
[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(oneFingerTwoTaps)]; 
tapGesture.delegate=self; 
// Set required taps and number of touches 
[tapGesture setNumberOfTapsRequired:1]; 
[tapGesture setNumberOfTouchesRequired:1]; 
[[self view] addGestureRecognizer:tapGesture]; 
} 

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { 
CGPoint pointOnScreen = [touch locationInView:nil]; 
NSLog(@"Point - %f, %f", pointOnScreen.x, pointOnScreen.y); 
NSLog(@"Touch"); 
touchFrame = CGRectMake(pointOnScreen.x, pointOnScreen.y-120, 0, 0); 
return NO; // handle the touch 
} 

내가이 코드 덩어리에서 달성 할 수 있어요 무엇 나는이 같은 짓을

, 터치 위치를 얻기 위해,

enter image description here

하지만 터치하면 릴 비트 비트 obove, 나는 그 터치와 팝업에 해당하는 위치를 얻을 오른쪽 지점에 오지 않습니다. 이 같은 그것의보고 뭔가

enter image description here

는 최신의 정확한 위치를 얻을 수있는 방법이있다. 모든 유형의 도움이 상당 할 것입니다.

답변

0

대리자 메서드 calendar:didSelectDate:atMonthPosition:을 사용한 다음 calendar:cellForDate:atMonthPosition:을 사용하여 셀을 가져 오는 것 같습니다. 그런 다음 cell.frame을 사용하여 위치를 얻을 수 있습니다.

1

찾을 솔루션 등의 요구 사항에 올 것이다 사람들 를 들어 FSCalendar

에 사용할 수있는 모든 방법을 거쳐 선택한 날짜의 CGRect을 반환하는 방법 - (CGRect)frameForDate:(NSDate *)date;있다,이 RECT에서, 우리는 센터를 찾을 수 있습니다.

- (void)calendar:(FSCalendar *)calendar didSelectDate:(NSDate *)date { 
touchFrame = [calendarView frameForDate:date]; 
CGPoint mypoint = CGPointMake(touchFrame.origin.x + (touchFrame.size.width/2), touchFrame.origin.y + (touchFrame.size.height/2)); 

touchFrame.origin = mypoint; 
touchFrame.origin.y = touchFrame.origin.y - 120; 
touchFrame.size.height = 0; 
touchFrame.size.width = 0; 
}