
关于支持此库的说明
这个图书馆是专门为 蓝斯基社交App。支持此库 这在很大程度上取决于两个因素:
- 我们是否有时间实施一个特征或解决一个问题?
- 这个特征对布鲁斯基有多重要,或者它是否解决了布鲁斯基存在的问题?
如果你想在这个库里看到一些不存在的特征 可能(或肯定)没有大大改善 布鲁斯基的经验,请随意 提交公关! 当然,你也应该觉得自由 提出专题建议或 错误报告也一样,只要有空闲时间,就可能开展工作。 璶笵 这可能需要一些时间.
谢谢!
反应原生 UITextView
这个 Text 更接近于执行 UILabel (原始内容存档于2018-03-31). On iOS. 不幸的是,这阻止了
用户可以突出显示用于选择的文本。 唯一可能的复制行为是复制
整个文本块.
UITextView 不过,允许用户突出显示文本块中供复制的部分内容,
翻译,或其他本地能力.
反应本地 UITextView 利用 UITextView 允许两种类型的复制
在iOS上:突出显示并复制或当前, UILabel 完全复制的行为
文本块.
安装
[尖叫声] 这个支持旧 React 原生架构的软件包的最终版本是
1.4.0。所有版本2.x财务报告和审定财务报表 高支持只支持新架构. 不幸的是,我没有时间保持对这两个架构的支持. 版本1.4.0然而,除了基地中仍然缺失的特征之外,还是稳定的<Text>组件,应 任务与2.x和更高的.
[注] 版本 2.4.0
@bsky.app/react-native-uitextview并且支持反应土著0.81.5和较新的. React Industrial 的新存档文本布局 API 可以在发布之间更改; 兼容性问题最有可能出现 内RNUITextViewShadowNode.cpp。 。 。 .
yarn add @bsky.app/react-native-uitextview
cd ios
pod install
限制
反应原生 UITextView 大部分可以用作倒置替换
现有区块 Text然而,有一些限制:
- 少数风格尚未实施,但所有风格都应该是可能的.
使用量
此组件的用法与底部 React Native 相同 Text 组件。 这个
可导入为 Text 从 @bsky.app/react-native-uitextview,所以在大多数情况下你只
需要替换当前 Text 导入此项.
除了上面的几处限制之外 你所有的风格和道具
用于 Text 应该工作。 在非iOS平台上, Base React Industrial Text
将永远使用。 在 iOS 上, 基数 React 原生 Text 将使用组件
除非 selectable 编辑 uiTextView 道具都一样 true。 。 。 .
import {UITextView as Text} from '@bsky.app/react-native-uitextview'
function SomeView() {
return (
<View style={{flex: 1}}>
<Text
style={{color: 'green', lineHeight: 20, fontSize: 14}}
selectable
uiTextView>
This is some highlightable text! It uses UITextView
</Text>
<Text
style={{color: 'blue', lineHeight: 20, fontSize: 14}}
selectable // Note we do not add the uiTextView prop
>
This text still uses the base Text component. It can only be copied.
</Text>
<Text
style={{color: 'red', lineHeight: 20, fontSize: 14}}
uiTextView // Note we do not add the selectable prop
>
This text still uses the base Text component. It can't be highlighted or
copied at all.
</Text>
</View>
)
}
编号 UITextView 支持组件。 例如,如果您有样式
仅适用于案文的一部分,或 onPress 回调到
添加到链接.
<Text style={{fontSize: 14}} selectable uiTextView>
This is some text that's highlightable with{' '}
<Text
style={{color: 'blue', textDecorationLine: 'underline'}}
onPress={() => Linking.openURL('https://google.com')}>
a link
</Text>
.
</Text>
内含视图也得到支持并参与文本的测量和包扎:
<Text selectable uiTextView>
Selectable text{' '}
<View
style={{
paddingHorizontal: 5,
paddingVertical: 2,
borderRadius: 999,
backgroundColor: '#e5e7eb',
}}>
<Text style={{fontSize: 12}}>1/3</Text>
</View>
</Text>
可压缩 UITextView 文本使用与圆形灰色相加的
原生反应 Text。亮点立即出现,在
在快速水龙头上至少130毫秒,并覆盖属于非受压的筑巢跨度
同一可按的父关系。 设定 suppressHighlighting 关闭视觉
反馈而不造成残疾 onPress 或者说 onLongPress。 。 。 .
选择检测
UITextView 通过 onSelectionChange 调用.
这将在用户选择或取消文本时提供实时通知, 删除
需要通过投票进行筛选.
使用量
import {UITextView as Text} from '@bsky.app/react-native-uitextview'
function SelectableText() {
const [selectedText, setSelectedText] = React.useState('')
return (
<Text
selectable
uiTextView
onSelectionChange={event => {
const {start, end} = event.nativeEvent
// Extract selected text from your content string
const text = content.substring(start, end)
setSelectedText(text)
}}>
Selectable text content
</Text>
)
}
事件属性
这个 onSelectionChange 事件提供以下属性:
nativeEvent.target- 视图标签标识符nativeEvent.start- 选定范围的起始索引(基于0)nativeEvent.end- 选定范围的终点指数(基于0,独家)
页:1
- 用多字节字符(如阿拉伯语、emojis)正确工作
- 仅在使用时在 iOS 上可用
uiTextView={true} - 即使选择被清除,事件也会起火(
start === end,包括: 当库在文本视图外的自带上清除时 - 事件引发了每次选尖调整——拖取选题 控件以扩展几个字符会多次开火。 消费者驾驶 这场赛事需要花费很多钱
捐款
捐款总是受到欢迎和鼓励。 但请注意,可能需要: 公关审查并合并的时间,可能根本不可能合并。 这个图书馆 创建是为了支持在 蓝斯基社交App可能提供的捐款 影响Bluesky部分的正常运作,不会合并.
一些我们没有时间适当执行的重大贡献的想法:
- 对所有 RN 样式的全力支持
- 改善无障碍环境
许可证
Bluesky Social PBC致力于软件专利不侵犯承诺. 详情见 原公告。 。 。 .
制造的 创建- 反应- 本土- 图书馆