iOS自定义UILabel添加下划线与点击事件

在iOS开发中,为UILabel添加下划线和点击事件涉及到自定义UILabel以及触摸事件处理。由于标准UILabel没有内置的下划线属性,我们需要通过重写drawRect:方法绘制下划线。这个过程包括以下步骤:

  1. 获取UILabel的文本和字体信息。
  2. 计算文本的尺寸,使用boundingRectWithSize:options:attributes:context:方法。
  3. 获取文本的底线位置,考虑字体的descender属性。
  4. 使用Core Graphics的CGContextMoveToPoint:CGContextAddLineToPoint:绘制下划线。

代码示例:

zip
UnderLinedLabel.zip 预估大小:59个文件
folder
UnderLinedLabel 文件夹
folder
UnderLinedLabel.xcodeproj 文件夹
folder
project.xcworkspace 文件夹
file
contents.xcworkspacedata 160B
folder
xcuserdata 文件夹
folder
xiaohq002.xcuserdatad 文件夹
file
UserInterfaceState.xcuserstate 16KB
file
project.pbxproj 14KB
folder
xcuserdata 文件夹
folder
xiaohq002.xcuserdatad 文件夹
folder
xcschemes 文件夹
file
xcschememanagement.plist 487B
file
UnderLinedLabel.xcscheme 3KB
folder
xcdebugger 文件夹
file
Breakpoints.xcbkptlist 91B
folder
.git 文件夹
file
index 2KB
folder
hooks 文件夹
file
prepare-commit-msg.sample 1KB
file
applypatch-msg.sample 452B
file
pre-commit.sample 2KB
file
pre-applypatch.sample 398B
file
commit-msg.sample 896B
file
pre-rebase.sample 5KB
file
update.sample 4KB
file
post-update.sample 189B
file
config 138B
file
description 73B
folder
refs 文件夹
folder
tags 文件夹
folder
heads 文件夹
file
master 41B
folder
branches 文件夹
folder
logs 文件夹
folder
refs 文件夹
folder
heads 文件夹
file
master 162B
file
HEAD 162B
folder
objects 文件夹
folder
3d 文件夹
file
2651dc63253069dafb0a97469bad10bc64f172 57B
folder
d0 文件夹
file
f8b8f1f380931668acf8cb574c7e01d20aaa49 498B
folder
ef 文件夹
file
1f10f1c6548c17dbe67bd2ae897767a0360e5f 264B
folder
35 文件夹
file
b84cffeb4db607983c8383fa9199731dc3aba0 2KB
folder
84 文件夹
file
db51a06cf817d3b6782bc72ee23441370210be 92B
folder
ac 文件夹
file
d9fd48137d2e98f478eeadbad03369331ab259 170B
folder
34 文件夹
file
2ed457f3a6b9a388d1da62682574c6ad5454f8 392B
folder
info 文件夹
folder
47 文件夹
file
7b28ff8f86a3158a71c4934fbd3a2456717d7a 61B
folder
2e 文件夹
file
b2e47874b443d2a3098003f0f77370198b70a0 3KB
folder
b3 文件夹
file
99518aa671cb54b2eab671c632f583429f38f4 234B
folder
pack 文件夹
folder
cb 文件夹
file
c03ef90efd561c80d28f2103001697c069f155 353B
folder
96 文件夹
file
3bcaa5fe79fecf91304fe8340f6231d635d836 1KB
folder
8d 文件夹
file
a545b16694cc46ad95c8f14d545a5528ca22f1 319B
folder
99 文件夹
file
8281203908b0fe19b82aae9e4bdf27cd9208d1 104B
folder
bd 文件夹
file
d481d798c3b3977021436f2b96f2dd3c342967 252B
folder
d2 文件夹
file
71215cebcbb9e3565c3b4fac0764ab488b498f 1KB
folder
08 文件夹
file
91b7aabfcf3422423b109c8beed2bab838c607 2KB
folder
4c 文件夹
file
8ca6f693f96d511e9113c0eb59eec552354e42 2KB
folder
e3 文件夹
file
cf584fc49a403bbcc77ad27e255fc12a0aeb92 130B
folder
c9 文件夹
file
f7bf05cc67fad88a6b81ef445975d72110e74d 177B
folder
info 文件夹
file
exclude 35B
file
COMMIT_EDITMSG 15B
file
HEAD 23B
file
.DS_Store 6KB
folder
UnderLinedLabel 文件夹
file
main.m 337B
file
UnderLinedLabel-Prefix.pch 333B
file
Default.png 6KB
file
AppDelegate.h 365B
file
AppDelegate.m 2KB
file
Default-568h@2x.png 18KB
file
.DS_Store 6KB
file
Default@2x.png 16KB
file
UIUnderLinedLabel.m 2KB
file
ViewController.h 216B
file
ViewController.m 971B
file
UnderLinedLabel-Info.plist 1KB
folder
en.lproj 文件夹
file
ViewController.xib 5KB
file
InfoPlist.strings 45B
file
UIUnderLinedLabel.h 456B
...
zip 文件大小:73.1KB