使用 CGContext 绘制线条

2024-01-07

我想在表视图单元格中画线,以便可以将文本字段和开关放置在单个单元格中。我增加了单元格的高度。如何在单元格中画线?

我有 UIView 的子类,其中包含以下代码

 //Get the CGContext from this view
 CGContextRef context = UIGraphicsGetCurrentContext();
 //Set the stroke (pen) color
 CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);
 //Set the width of the pen mark
 CGContextSetLineWidth(context, 1.0);

 // Draw a line
 //Start at this point
 CGContextMoveToPoint(context, 10.0, 30.0);

 //Give instructions to the CGContext
 //(move "pen" around the screen)
 CGContextAddLineToPoint(context, 310.0, 30.0);


 //Draw it
 CGContextStrokePath(context);

然后我有一个具有分组表格样式的 tableViewController 。在 cellForRowAtIndexPath 中我有以下代码

//code to add textfield
DrawLineView *drawLine = [[DrawLineView alloc]init];
[cell addSubview:drawLine];
//code add switch

但它并没有划定任何界限。我不能使用 2 个不同的电池。我必须请帮助我。这是我第一次在 iPhone 上处理图形。谢谢


如果您只想画一条线,那么最好使用 CAShapeLayer,向其传递一条带有线的路径,然后将其附加为单元格内容视图的子图层。该表的性能应该比使用带有自定义绘制矩形的视图更好。

通过 CALayer 和路径绘制线条的示例:

// You'll also need the QuartzCore framework added to the project
#import <QuartzCore/QuartzCore.h>

CAShapeLayer *lineShape = nil;
CGMutablePathRef linePath = nil;
linePath = CGPathCreateMutable();
lineShape = [CAShapeLayer layer];

lineShape.lineWidth = 4.0f;
lineShape.lineCap = kCALineCapRound;;
lineShape.strokeColor = [[UIColor blackColor] CGColor];

int x = 0; int y = 0;
int toX = 30; int toY = 40;                            
CGPathMoveToPoint(linePath, NULL, x, y);
CGPathAddLineToPoint(linePath, NULL, toX, toY);

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

使用 CGContext 绘制线条 的相关文章

  • 在带有 Storyboard 的 XCode 4 中以模态方式推送视图时,出现“对开始/结束外观转换的不平衡调用”警告

    在网上进行了一些研究但没有成功后 我来这里向您询问有关我的警告的问题 实际上 我有一个带有导航控制器的视图 V1 我想在 V1 完成加载时推送模态视图 V2 所以我用performSegueWithIdentifier方法 我正在使用故事板
  • 关于窗口层次结构的警告

    我的调试器中出现这样的警告 这是什么意思 Warning Attempt to present
  • 应用内购买产品禁用“提交审核”

    基于此处提到的所有步骤http troybrant net blog 2010 01 in app purchases a full walkthrough http troybrant net blog 2010 01 in app pu
  • 架构armv7的重复符号

    尝试在我现有的应用程序中使用 Layar SDK 时出现以下错误 我该如何解决这个问题 Ld Users pnawale Library Developer Xcode DerivedData hub afxxzaqisdfliwbzxbi
  • 仅将 UIImage 移动到另一个 UIImage 内部

    I have an UIImage which is shown in an UIImageView I also have another image in an UIImageView which lays above the firs
  • 如何检查 BOOL 是否为空?

    有没有办法在将值分配给 BOOL 之前检查该值是否为 NULL Nil 例如 我在 NSDictionary 中有一个值可以是 TRUE FALSE NULL mySTUser current user following results
  • 检索 iPhone 中的 Outlook 联系人

    我想通过应用程序导入所有 Outlook 联系人 有什么办法可以做到这一点吗 请告诉我 您可以通过实施 Microsoft Exchange 服务器协议来实现此目的 微软MSDN http msdn microsoft com en us
  • Objective-C中如何使继承的类能够看到父类的隐藏方法[重复]

    这个问题在这里已经有答案了 我有两个类 Class1 和 Class2 第二个类继承自第一个类 我需要重写 Class1 的 update 方法来实现我的目标 继承方法中 update方法的改变是在代码中间进行的 所以我不能使用 超级更新
  • iphone:在 UIWebView 之上查看?

    我正在开发一个浏览器应用程序 并且 UIWebView 顶部有一个地址栏 在 MobileSafari 上 如果向下滚动 地址栏开始移动到顶部 移出屏幕 并且 UIWebView 不会滚动 只有当地址栏完全消失时 它才开始滚动 我也想在我的
  • iPhone 崩溃日志?

    我已经配置了一部 iPhone 并让用户安装了该应用程序 它失败 是否有崩溃日志可以让我看到 iPhone 上失败的原因 Ian 如果您可以使用 xcode 将 iPhone 连接到计算机 则在管理器窗口中它会显示每个应用程序崩溃的崩溃日志
  • 如何减少典型 iPhone 应用程序的启动时间?

    需要明确的是 这是一个普通的 iPhone 应用程序 而不是游戏 我在网上读过几次 一些开发人员提到他们正在努力改进 减少应用程序的启动时间 但从来没有提供任何关于如何做到这一点的良好背景信息 那么问题很简单 如何减少 iPhone 应用程
  • GMSMapView 中的倒多边形

    我必须在我的 iPhone 项目中使用 Google 地图 并且我正在使用 GMSPolygon 来绘制多边形 但是如何填充地图上除多边形内部之外的所有位置 就像下图一样 谢谢 我玩过你的问题 主要思想是用多边形填充整个地球 然后为您的特定
  • 是什么导致了这个 iPhone 崩溃日志?

    我有点卡住了 需要解决这个问题 因为我的一个应用程序出现了随机崩溃 而这些崩溃并不总是能够重现 这是崩溃日志之一 Incident Identifier 59865612 9F00 44EA 9474 2BF607AD662E CrashR
  • 有什么方法可以让我知道按屏幕的力度有多大

    我想找到触摸的压力 我只是不知道如何在不越狱并获取原始触摸数据的情况下实现该结果 有谁知道我会怎么做 你无法获得来自SDK的压力nor未记录的方法 然而你can使用未记录的方法检测触摸的大小 在 GSEvent UIEvent 的较低级别表
  • UIDatePickerModeCountDownTimer模式中的UIDatePicker:如何更改为分钟和秒模式?

    我在故事板中添加了 UIDatePicker 并将模式设置为 CountDownTimer 它只显示小时和分钟 但我需要的是分钟和秒模式 我不需要小时列 需要分钟和秒列 我尝试更改间隔 但最小值是 1 分钟 是否可以 我怎样才能做到这一点
  • 如何在 Apple Watch Extension/App 和 iOS App 之间建立通信通道

    我正在探索 WatchKit SDK 当我有 WatchKit 应用程序时 是否可以在 WatchKit 应用程序上从 iPhone 应用程序设置值 例如文本 设置 我可以从 iPhone 应用程序调用 WatchKit 应用程序扩展中的函
  • 如何将 NSIndexpath 转换为 NSInteger 或简单的 int?

    我需要将 nsindexpath var 转换为 NsInteger 或简单的 int 例如 int rowIndex mGoogleBaseTable selectedRow mGoogleBaseTable is a NSTable t
  • Objective Flickr 照片上传错误

    我正在使用 ObjectiveFlickr 库将照片从我的 iPhone 应用程序上传到 Flickr 我可以授权该应用程序并执行一般请求 但在尝试上传照片时遇到错误 要上传的照片是使用 AVFoundation 捕获的图像 这是相关代码
  • 对使用phonegap和钛的质疑[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 最近我听说了 PhoneGap 和 Titanium 移动网络应用程序的开发 我分析了这两个 Web 应用程序 并了解了如何使用它们以
  • 应用程序未通过协同设计验证?

    我在提交 iPhone 申请时遇到问题 我看到了一些类似的问题 但没有找到答案 当我存档项目并单击 验证 时 收到错误消息 应用程序未通过协同设计验证 签名无效 或者未使用 Apple 提交证书进行签名 我假设我在协同设计部分做错了什么 我

随机推荐

  • 如何跟踪列中发生的更改数量? T-SQL-SQL Server

    例如 我有一个名为 EmployeeName 的列 每次用户更改 修复他的名字时 我都需要进行计数 如果他两次更改姓名 则计数为 2 另外 我需要存储员工在 EmployeeName 上进行的每次更改的时间 例如如果名称本质上是 James
  • swagger 中的布尔值作为字符串发送,而不是 NestJS 中的布尔值

    我不明白为什么 Swagger 将我的布尔值作为字符串而不是布尔值发送 我已在 Dto 中将该字段的值设置为布尔值 它与 Postman 一起发送布尔值 但与 Swagger 一起发送 后者作为字符串发送 这是我的控制器使用CreateIs
  • 获取webview的最大滚动值

    我知道在 Scrollview 中您可以访问scrollView getMaxScrollAmount 但是我似乎不明白如何在 webview 上调用它 我尝试作弊来获取有关它的信息 这是我尝试过的 该方法应该做的是 它不断滚动特定的量 并
  • 困境:何时使用片段与活动:

    我知道Activities被设计为代表我的应用程序的单个屏幕 而Fragments被设计为可重用的 UI 布局 其中嵌入了逻辑 直到不久前 我开发了一个应用程序 因为它说应该开发它们 我创建了一个Activity代表我的应用程序的屏幕并使用
  • 使用 JSONObject 在 Java 中为以下结构创建嵌套 JSON 对象? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想使用 JSONObject 和 JSONArray 构建一个类似于 java 中结构的 JSON 对象 我浏览了堆栈溢出中的各种帖子
  • MediaPlayer 无法播放程序数据文件夹中的音频文件?

    当我从 MIC 录制音频并将文件存储在 data data 为什么 MediaPlayer 无法播放该文件 如果我将目的地更改为 SD卡 一切都很好 我做错了什么吗 我没有找到 MediaPlayer 的限制 设备 三星 T959 Gala
  • Birt 报告设计在运行报告时验证报告参数

    如何在 WebViewer 中运行报表时验证报表参数 我正在使用 eclipse 来设计报告 我使用日期字段和一些选择框作为参数 但我的要求是 用户不应该输入日期 他应该从日期选择器 jquery UI 中选择日期 并且在选择框中我希望在服
  • Coinbase API - 尽管有 200 响应,但账户之间的转账并未实际转账

    我正在开发一个项目 需要使用 Coinbase API v2 在两个钱包之间进行转账 当我调用 API 时 https api coinbase com v2 accounts account id transactions https a
  • Emacs Org 模式:如何停止列视图中显示天数的总计?

    我正在使用 Emacs 23 4 1 和 Org Mode 8 0 6 在我的组织文件中 我使用以下方法估计了任务将花费的小时数Effort相关标题的属性 例如 My Tasks TODO Read a book TODO Watch a
  • Android 评级栏显示超过 5 颗星

    我想通过我的 Android 应用程序中的警报对话框显示评级栏 我面临的问题是 根据屏幕的宽度 评级栏在横向模式下显示超过 5 颗星 最多 10 颗 并且函数 setNumStars 没有效果 已经有一些帖子正在处理这个问题 但它们处理的是
  • Android Studio 无法识别“RobolectricTestRunner.class”

    我正在尝试使用 Robolectric 来运行单元测试 但 Android Studio 无法识别以下类 RunWith RobolectricTestRunner class Details classpath com android t
  • CSS 捆绑和 Internet Explorer 的限制

    当我将 jquery ui 添加到包中时 我最终得到 bundles Add new StyleBundle Content css Include Content themes base jquery ui core css Conten
  • 使用 geom_point() 进行位置躲避,x=连续,y=因子

    我创建了一个函数 可以同时绘制许多因子分析中的载荷 即使它们的变量没有完全重叠 或根本重叠 它工作得很好 但有时分析中的因子载荷是相同的 这意味着这些点被绘制在彼此之上 library pacman p load devtools psyc
  • 如何在 C# 中表示共轭表

    我正在为法语文本设计一个语言分析器 我有一个 XML 格式的字典 如下所示
  • 使用 pytest 管理测试数据的正确方法是什么?

    我需要为多个相关应用程序创建自动化测试 并面临测试之间的测试数据管理问题 问题是相同的数据必须在多个应用程序和 或不同的 API 之间共享 现在我有了 pytest 的下一个结构 它对我很有用 但我怀疑在 conftest py 中使用测试
  • 在 PyCharm 中保存时自动添加换行符?

    PyCharm 5 抱怨文件末尾缺少换行符 如何告诉 PyCharm 在保存文件时自动添加换行符 如果丢失 这可以在Editor gt General设置 从 下的文件菜单中 选择Settings 然后选择Editor gt General
  • SSAS - 显示行上的度量

    总的来说 我对 MDX 和 SSAS 很陌生 我正在尝试以漂亮的表格形式获取所有措施和日期 所以像这样 Measure Date Value Meas1 D1 3 Meas1 D2 8 Meas1 D3 9 Meas2 D1 7 Meas2
  • 在 iOS 5 中使用 -webkit-overflow-scrolling 进行滚动的问题

    我有一个高度固定的 HTML 页面div它应该是可滚动的 仅垂直 在 iOS 5 中 这可以通过以下方式实现 overflow y auto webkit overflow scrolling touch The div包含一个大约有 10
  • 是否可以对 mysql SELECT 语句中返回列的顺序进行排序?

    想象一下在线调查中的两个问题 你喜欢苹果吗 结果存储在 mysql 数据库列 q1 中 1对于 是 或0 for No 你喜欢橙子吗 结果存储在 mysql 数据库列 q2 中 1对于 是 或0 for No 想象一下以下 SELECT 语
  • 使用 CGContext 绘制线条

    我想在表视图单元格中画线 以便可以将文本字段和开关放置在单个单元格中 我增加了单元格的高度 如何在单元格中画线 我有 UIView 的子类 其中包含以下代码 Get the CGContext from this view CGContex