作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试获取 FSCalendarView 中选定单元格的位置。 (FSCalendar 库)。虽然我从屏幕获取位置,但它不是一个完美的位置,因为我想从该日期单元格显示弹出窗口。
我做了这样的事情,以获得触摸位置,
#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
}
这就是我能够从这段代码中实现的目标,
但是当我触摸日期上方的一点点时,我得到了与该触摸相对应的位置,并且弹出窗口没有出现在正确的位置。它看起来像这样,
有没有办法获得正确的日期位置。任何类型的帮助都将是值得赞赏的。
最佳答案
在完成 FSCalendar
的所有可用方法后找到解决方案
对于那些会提出这样要求的人,有一个方法 - (CGRect)frameForDate:(NSDate *)date;
返回选定日期的 CGRect,从这个 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;
}
关于ios - 我想在 FSCalendarVIew 中选择 DateCell 的位置。我怎么能得到?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42896416/
我正在尝试获取 FSCalendarView 中选定单元格的位置。 (FSCalendar 库)。虽然我从屏幕获取位置,但它不是一个完美的位置,因为我想从该日期单元格显示弹出窗口。 我做了这样的事情,
我是一名优秀的程序员,十分优秀!