致电所有专家!我见过各种帖子,说实话,我的需求与SO上的答案略有不同.
我想创建一个UI,用户可以在特定区域创建各种线条(直线,曲线,摆动等)(现在我们称之为"画布").每行可以有多个实例.然后,用户可以根据需要拖动和编辑这些行.因此,他们可以拉伸它,更改起点,终点等,甚至可以将整行拖动到画布的边界内.
我设法画线(使用drawRect)并在每一行的末尾显示可拖动的手柄(参见参考图像),用户可以在画布的边界(红色矩形)内拖动端点以满足需要.
我面临的问题是如何点击以激活特定行的编辑.因此,默认情况下,拖动句柄将不可见,并且用户可以点击该行以激活"编辑"模式,然后显示句柄(再次点按以取消选择).因此,在上图中,我希望能够检测黄色矩形中的触摸.请记住,UIView边界是整个画布区域,允许用户自由拖动,因此检测触摸显然很困难,因为还有透明区域,并且每行可以有多个实例.
这是我的代码到目前为止的行类(startHandle和endHandle是每一端的句柄):
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
CGPoint startPoint = CGPointMake(self.startHandle.frame.origin.x + self.startHandle.frame.size.width/2, self.startHandle.frame.origin.y + self.startHandle.frame.size.height/2);
CGPoint endPoint = CGPointMake(self.endHandle.frame.origin.x + self.endHandle.frame.size.width/2, self.endHandle.frame.origin.y + self.endHandle.frame.size.height/2);
UITouch *touch = [[event allTouches] anyObject];
CGPoint touchLocation = [touch locationInView:self];
if (CGRectContainsPoint(CGRectMake(startPoint.x, startPoint.y, endPoint.x - startPoint.x , endPoint.y - startPoint.y), touchLocation))
{
//this is the green rectangle! I want the yellow one :)
NSLog(@"TOUCHED IN HIT AREA");
}
}
- (void)drawRect:(CGRect)rect {
[super drawRect:rect];
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextClearRect(context, …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,我正在尝试集成HealthKit并使用HKStatisticsCollectionQuery提取白天汇总的步骤相关数据.要求是单独提取特定于iPhone和Apple Watch设备的步骤数据(无重复数据删除),这些数据对健康应用程序有所贡献.
该HKSource类仅包含以下属性:
我能够提取所有源码(使用HKSourceQuery),其中bundleIdentifier前缀为"com.apple.health",但我无法推断出哪个是Apple iPhone,哪个是Apple iWatch.
以前是否有人遇到类似的情况,有没有其他方法来确定哪个来源是iPhone或Apple Watch?
任何帮助都会很棒!谢谢!