UIBezierPath 未绘制平滑曲线

2024-01-23

我正在使用 UIBezierPath 进行绘图,并且我已经编写了关于触摸事件的代码并且其工作正常,但是我的曲线不平滑,当我移动手指并绘制一些曲线时,它们不平滑。

- (void)drawRect:(CGRect)rect
{    
    [[UIColor redColor] setStroke];
    for (UIBezierPath *_path in pathArray) 
    [_path strokeWithBlendMode:kCGBlendModeNormal alpha:1.0];
}

#pragma mark - Touch Methods
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    myPath=[[UIBezierPath alloc]init];
    myPath.lineWidth=5;
    myPath.lineCapStyle = kCGLineCapRound;
    myPath.flatness = 0.0;   

    UITouch *mytouch=[[touches allObjects] objectAtIndex:0];
    [myPath moveToPoint:[mytouch locationInView:self]];
    [pathArray addObject:myPath];

}
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{   
    UITouch *mytouch=[[touches allObjects] objectAtIndex:0];
    [myPath addLineToPoint:[mytouch locationInView:self]];

    [self setNeedsDisplay];    
}

这是图像

在上图中,如果您看到字母 a 和 d,您会发现曲线不平滑。我应该怎么做才能获得平滑的曲线?


那么你正在使用addLinePoint显然你得到的是直线,而不是曲线。您可能会对其他为您提供平滑曲线的方法感兴趣:添加曲线到点 http://developer.apple.com/library/ios/documentation/uikit/reference/UIBezierPath_class/Reference/Reference.html#//apple_ref/occ/instm/UIBezierPath/addCurveToPoint:controlPoint1:controlPoint2: or 添加四线到点 http://developer.apple.com/library/ios/documentation/uikit/reference/UIBezierPath_class/Reference/Reference.html#//apple_ref/occ/instm/UIBezierPath/addQuadCurveToPoint:controlPoint:。但正如您从 API 中看到的,除了您实际用手指绘制的点之外,您还需要控制点,这些控制点不是随绘图而来的。甚至 Photoshop 也会要求您在进行曲率处理时移动它们。换句话说,让你的手绘“自动”流畅涉及相当多的数学知识。谷歌“平滑手绘”,你至少会得到这些点

平滑手绘的自由形状 https://stackoverflow.com/questions/6363568/smoothing-a-hand-drawn-free-shape

平滑手绘曲线 https://stackoverflow.com/questions/5525665/smoothing-a-hand-drawn-curve

它实际上根本不是 iOS 特定的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UIBezierPath 未绘制平滑曲线 的相关文章

  • UIStackView分布均匀填充

    所以 我有一个UIStackView其中包含四 4 UIViews 如果我删除其中一 1 个UIViews 其他三 3 个将填满UIStackView 我的问题 如何添加最大高度UIView这样它就不会填满整个空间UIStackView即使
  • Admob 广告无法快速显示

    您好 我正在尝试将 admob 广告添加到已使用 swift 上传到应用商店的应用程序中 我在 admob 中制作了一个应用程序并复制了 appid 和广告 id 并显示了各自的横幅广告和插页式广告 这里的问题是当我写这行时 request
  • UITableView:显示 tableFooterView 时运行代码?

    我正在使用 UIView表页脚视图 http developer apple com library ios documentation uikit reference UITableView Class Reference Referen
  • 如何正确创建迦太基 cartfile?

    我正在研究购物车文件 迫不及待地想 简单地创建一个购物车文件 就像所有说明所说的那样 只是 如何 简单地 创建一个 Cartfile 我创建了一个纯文本文档 将其命名为 cartfile 并在其中复制了一些依赖项 Ran carthage
  • 如何找到键盘未覆盖的视图部分(UIModalPresenationStyleFormSheet)?

    我有一个视图控制器 显示带有 UITextView 的视图 并且我想在键盘出现时调整视图的大小 以便 UITextView 不会被键盘覆盖 我几乎在所有情况下都可以正常工作 据我所知 仅当视图控制器以 ModalPresentationSt
  • iOS、通用链接、Swift。 continueUserActivity 未调用

    我正在为我们的 iOS 应用程序实现通用链接 这是我的一小部分 AppDelegate private func application application UIApplication openURL url URL sourceApp
  • 如何从 SDK 实现每个会话的 Google Places 自动完成功能?

    是否可以从 Android 和 iOS 应用程序的 place sdk 实现基于会话的自动完成 根据 6 月 11 日生效的新 Google 地图框架定价 对自动完成的请求可以分为基于击键 会话的请求 我找不到描述实施步骤的文档 除了这个参
  • 从一个模态视图无缝翻转到另一个模态视图,而不显示纯色背景

    我的 iPad 应用程序的 UI 如下 当我点击Settings按钮 我希望对话框水平翻转以显示设置对话框 我这个工作正常 但是 当对话翻转时会显示背景颜色 如你看到的 有什么办法可以让对话框翻转时不显示该颜色块吗 我希望它看起来更加无缝
  • iOS 中 NSDecimalNumber 的小数分隔符错误

    我尝试通过以下方式输出具有正确的小数分隔符的十进制数的描述 NSString strValue 9 94300 NSDecimalNumber decimalNumber NSDecimalNumber decimalNumberWithS
  • (Kiss)XML xpath 和默认命名空间

    我正在开发一个 iPhone 项目 需要解析一些 xml xml 可能包含也可能不包含默认名称空间 我需要知道如何解析 xml 以防它使用默认命名空间 由于我需要读取和写入 xml 因此我倾向于使用 KissXML 但我愿意接受建议 这是我
  • ios swift parse:从 3 个类收集数据

    我有这样的结构 User CardSet 带有指向 User objectId 的指针 user 和 col name 带有点 cards 的卡片到 Card Set objectId 和列 name 我想选择所有卡数据 包括当前用户的卡集
  • 从按钮执行 Segue 时应用程序冻结

    我的故事板中有一个按钮 它呈现一个带有模式序列的视图控制器 每次按下此按钮时 应用程序都会冻结 没有崩溃 也没有错误消息 prepareForSegue被调用 所有应该存在的视图控制器都在代码中prepareForSegue 但它们不会出现
  • 用户验证 Facebook 后未调用应用程序打开 Url 方法

    我已将 ios 应用程序中的 facebook 升级到 3 0 并使用提供的代码https developers facebook com docs howtos login with facebook using ios sdk http
  • 如何向标准 UIButton 添加徽章? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 是否可以在标准中添加看起来标准的徽章UIButton 如果不支持半原生 那么实现此目的最简单的方法是什么 示例图片 这是 Sascha
  • 如何在代码中编辑约束

    我有一个以 100 开始宽度限制的网页 当用户单击按钮时 我想将约束更改为 200 我试过这个 NSLayoutConstraint constrain NSLayoutConstraint constraintWithItem self
  • 在实例化对象之前是否可以检查故事板中是否存在标识符?

    在我的代码中我有这一行 但我想知道是否有办法检查是否 一些控制器 在我将它与 一起使用之前就存在实例化ViewControllerWithIdentifier 方法 如果标识符不存在 则应用程序崩溃 如果没有好的方法 这并不是一个大问题 我
  • 使用 MapKit 的地形和卫星视图

    我是 Mapkit View 的新手 当我给出没有目的地的纬度和经度时 我想显示 MapKit中是否可以通过地形 卫星视图来显示地图 有教程链接吗 我看过一些访问 Google 地图 API html 文件 的示例 有必要吗 或者您可以通过
  • 更改 iOS7 中 UIAlertView 的字体大小

    我想更改alertView中消息文本和标题文本的字体大小 苹果网站上没有任何文档谈到这一点 但苹果在其子类注释中表示 UIAlertView 类旨在按原样使用 请参考以下链接 https developer apple com librar
  • ios - 如何声明静态变量? [复制]

    这个问题在这里已经有答案了 C 中声明的静态变量如下 private const string Host http 80dfgf7c22634nbbfb82339d46 cloudapp net private const string S
  • 隐藏选项卡栏项目并对齐其他选项卡项目

    在我的应用程序中 我有 4 个选项卡栏项目 我正在 XIB 文件中添加这 4 个选项卡栏项目 最初我必须显示 3 个选项卡栏项目 同步后我必须在我的应用程序中显示第 4 个选项卡栏项目 因此 为此 我使用以下代码隐藏第四个选项卡栏项目 se

随机推荐

  • 如何从 spring RESTful 服务返回 JSON 并使用 RestTemplate 类访问它

    我制作了一个 Spring RESTful Web 服务 用于以 JSON 格式提供热门歌曲列表 为此 我在列表中添加了歌曲名称 并从 Spring RESTful Web 服务的 Restcontroller 返回了该名称 所以 Rest
  • LinearLayout 的点击监听器永远不会被调用

    尝试让 onclick 侦听器在线性布局上工作 但它从未被调用 已启用可点击和可聚焦 两种模式 但仍然无法让点击侦听器响应 平台详细信息 Android 3 0 有任何帮助吗 下面的代码
  • 使用表单生成器将字段的值显示到 Rails 中的标签中

    我正在使用 Rails 3 2 并且需要使用表单生成器对象显示标签中字段的值 在文本框中显示它很简单 但我无法在标签中做到这一点 代码是这样的 上面的 f 是我的表单生成器 我的模型有一个名为 key name 的字段 第二行工作正常 我将
  • addslashes() 可以安全地防止 HTML 属性中的 XSS 吗?

    我不得不开发一个以前的开发人员留下的旧网络应用程序 它使用addslashes 来防止HTML属性上的XSS 这是一个例子 这是否容易受到 XSS 攻击 有没有什么方法可以让 javascript 在 value 属性中运行 就像在 src
  • 未定义的方法“分页”

    我正在尝试使用 will paginate gem 但出了点问题 我被困住了undefined method paginate 错误 我读了很多问题并尝试了很多事情 这是我所得到的 这是我的 LocationsController rb d
  • 在 pytube 中显示进度

    import pytube def video downloader vid url str input Enter Video URL print Connecting Please wait video pytube YouTube v
  • 在 ASP.NET 中处理数据时如何更新进度消息?

    我有一个流程 它输出逐步消息 即 处理项目 1 项目 2 中的错误等 我希望在整个过程中 而不是最后 将其输出给用户 我很确定我需要使用线程来完成此操作 但找不到合适的示例 这不是线程问题 而是 Web 浏览器 UI 问题 您希望浏览器在您
  • 如何仅对我想要提交的文件运行 Prettier?

    Using Husky https github com typicode husky 我已经设置了我的package json使用预提交挂钩 以便我的 JavaScript 代码使用以下格式进行格式化Prettier https pret
  • 具有模板参数大小的 const char 数组与 char 指针

    今天我在一些代码中看到了以下类型的构造 template
  • std::forward 与 std::move 的用法[重复]

    这个问题在这里已经有答案了 我总是读到std forward仅适用于模板参数 然而 我问自己为什么 请参见以下示例 void ImageView setImage const Image image image image void Ima
  • 在 React Native 中使用 Firebase 进行 Google 登录

    请注意 由于需要解释 问题可能会很长 否则它可能会非常模糊并导致相同的旧答案 我在创建时遇到问题Google Sign In页面进入React Native using firebase 基于firebase文档 随着 3 1 0 SDK
  • 如何防止 Windows(手机)8.1 通用应用程序锁屏?

    有谁知道如何防止 Windows 手机 8 1 通用应用程序中的锁屏 在 Windows Phone 8 中 我使用过 PhoneApplicationService Current UserIdleDetectionMode IdleDe
  • 将 C++ int 数组编组为 C#

    我想将一个整数数组从 C 编组到 C 我有一个非托管 C dll 其中包含 DLL EXPORT int fnwrapper intarr int test new int 3 test 0 1 test 1 2 test 2 3 retu
  • 使用 GitLab 将 Node.js 应用程序持续部署到 Heroku

    有涵盖 Ruby 和 Python 应用程序部署的教程 但我找不到 NodeJS 的良好文档或示例 http docs gitlab com ce ci examples test and deploy python application
  • 如何在 C++ 中清除 2D 矢量

    任何人都可以建议我 如何在 C 中清除 2D 矢量 我必须编写需要读取 Matrix Process 和 Clear Matrix 的程序 并为下一次读取操作做好准备 我已经使用向量创建了二维数组 gt 我正在填充但无法重置 下面是参考代码
  • WPF - 为基类实现 System.ComponentModel.INotifyPropertyChanged

    我想为基类上的属性实现 System ComponentModel INotifyPropertyChanged 接口 但我不太确定如何连接它 以下是我想要接收通知的属性的签名 public abstract bool HasChanged
  • 可编辑的 WPF 列表视图

    我想做一个ListView当用户双击某个项目时可编辑 我意识到网络上有很多示例 但是这些示例都是基于IsSelected属性 而不是处理双击事件 有什么想法或指示吗 UPDATE 因此 我遇到的另一个问题是 如何访问数据模板中的控件List
  • 使用假 mongoDB 进行 pytest 测试

    我有连接到 MongoDB 客户端的代码 我正在尝试测试它 为了进行测试 我不想连接到实际的客户端 因此我试图找出一个假客户端来进行测试 代码的基本流程是我在某处有一个函数创建一个pymongo客户端 然后查询并创建一个在其他地方使用的字典
  • 发布 Android 应用程序后,谷歌地图不显示?

    朋友们 在使用模拟器在 Eclipse 上测试应用程序时 谷歌地图可以正确显示 但是当我导出应用程序来发布它时 谷歌地图不见了 谁能指导我我犯了什么错误 任何帮助 将不胜感激 当您导出应用程序以发布它时 您可能不再使用调试密钥库 而是使用自
  • UIBezierPath 未绘制平滑曲线

    我正在使用 UIBezierPath 进行绘图 并且我已经编写了关于触摸事件的代码并且其工作正常 但是我的曲线不平滑 当我移动手指并绘制一些曲线时 它们不平滑 void drawRect CGRect rect UIColor redCol