TextView字体颜色选择器

下面为大家写一个简单的TextView字体颜色选择器的demo,我们平时在对TextView进行操作的时候需要改变TextView字体的颜色,比如当对TextView进行点击,长按时,需要改变TextView的字体颜色;好了废话不多说,直接写上代码,以及操作的步奏:
1、在res文件夹下新建color文件夹,过程如下:
点击res–>右键–>New–>点击(android XML File)–Resource Type下拉框中选择 Color List 文件名自己定义
2、操作完1步奏,会在res中生成color文件夹,在color文件夹中点击文件,对click等情况下进行颜色的更改
3、在TextView控件中进行设置:textColor=“@color/text_bg”
android:clickable=”true” (一定要加上)

上面说的不是特别明白,下面会附上demo,你们可以直接下载,不过建议按照上面的步奏操作一遍,这样更好。
源码下载地址:http://download.csdn.net/detail/json998/9056223

您可以使用 `UITextViewDelegate` 中的 `textViewDidChangeSelection` 方法来实现通过选择器(`UIPickerView`)选择颜色和字体大小后,选中文本后文字和字体颜色的改变。 首先,您需要创建一个 `UIPickerView` 并将其作为 `UITextView` 的 inputView,以便用户可以在选择器中选择颜色和字体大小。具体做法如下: ```swift // 创建一个 UIPickerView let pickerView = UIPickerView() pickerView.delegate = self pickerView.dataSource = self // 将 pickerView 设置为 textView 的 inputView yourTextView.inputView = pickerView ``` 然后,您需要在 `UITextViewDelegate` 中的 `textViewDidChangeSelection` 方法中获取所选文本的范围,并将选定的文本的颜色和字体属性设置为选择器中选择的值。具体实现代码如下: ```swift func textViewDidChangeSelection(_ textView: UITextView) { let selectedRange = textView.selectedRange let attributedText = NSMutableAttributedString(attributedString: textView.attributedText) attributedText.addAttribute(.foregroundColor, value: selectedColor, range: selectedRange) attributedText.addAttribute(.font, value: selectedFont, range: selectedRange) textView.attributedText = attributedText } ``` 其中,`selectedColor` 和 `selectedFont` 分别是从选择器中获取的颜色和字体大小。 最后,您需要实现 `UIPickerViewDelegate` 和 `UIPickerViewDataSource` 协议中的方法来设置选择器的选项和响应选择器的选择事件。具体实现代码如下: ```swift // 实现 UIPickerViewDataSource 协议中的方法 func numberOfComponents(in pickerView: UIPickerView) -> Int { return 2 } func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { if component == 0 { return colors.count } else { return fontSizes.count } } // 实现 UIPickerViewDelegate 协议中的方法 func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { if component == 0 { return colors[row] } else { return fontSizes[row] } } func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { if component == 0 { selectedColor = UIColor(named: colors[row]) ?? .black } else { selectedFont = UIFont.systemFont(ofSize: CGFloat(fontSizes[row])) ?? UIFont.systemFont(ofSize: 16) } } ``` 其中,`colors` 和 `fontSizes` 是您自定义的颜色和字体大小选项数组,`selectedColor` 和 `selectedFont` 是您用来存储所选颜色和字体大小的变量。 这样,当用户选中文本后,就可以通过选择器来改变选中文本的颜色和字体大小了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值