objective-c - 如何根据 iOS 上的 touchMove 事件在屏幕上绘制动态矩形

标签 objective-c ios xcode cocoa-touch ipad

矩形将被视为两个点,第一个点将是 touchBegan 点,touchMove 将是第二个点,矩形将根据用户手指移动动态绘制,(就像您在桌面上单击时并移动鼠标,您将获得动态矩形)。

谢谢

最佳答案

好的,下面是如何在 touchesMoved 中绘制矩形(使用 @Nekto touchesBegan 来存储矩形的起点)。

假设您对正在绘制的 UIView 保留一个引用,并将其命名为 drawnView。 在 touchesBegan 中,我们为 drawnView

设置了框架的原点

这是touchesMoved:

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent*)event
{
    // We only take care of a single touch
    if ([touches count] == 1)
    {
        UITouch *touch = [touches anyObject];
        // Find the width and height of the rect
        CGRect drawnFrame = drawnView.frame
        drawnFrame.size.width = [touch locationInView:parentView].x - drawnFrame.origin.x
        drawnFrame.size.height = [touch locationInView:parentView].y - drawnFrame.origin.y
        [drawnView setFrame:drawnFrame];
    }
}

不要复制粘贴那段代码,我不是用 Xcode 或其他任何东西写的。它可能有错误(当然)。但我希望它可以帮助您找到解决方案。请注意,如果您将手指拖到顶部或左侧(高度和宽度为负值),我无法判断它会如何表现。

关于objective-c - 如何根据 iOS 上的 touchMove 事件在屏幕上绘制动态矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8047020/

相关文章:

ios - 动画并不总是从 UIViewControllerAnimatedTransitioning 中的 animateTransition 可见

ios - UICollectionView Controller 中的自定义单元格未被调用

ios - dispatch_async 执行的执行(Swift)

iphone - Xcode 5 中的代码签名问题

ios - 循环中的 NSLayoutConstraint FOR

ios - 在示例项目中导入 cocoapod

ios - iCloud 无处不在的容器在删除应用程序时没有被清理?

iphone - Xcode 上奇怪的编译时错误

ios - Fitbit OAuth2.0 token 请​​求(Swift 3)

objective-c - 更新时无效时 Realm 崩溃