Swift 如何使文本适合圆形/图像快捷界面的边界
我似乎无法理解如何确保我的文本覆盖并符合圆形图像的边界。这就是我目前所拥有的Swift 如何使文本适合圆形/图像快捷界面的边界,swift,swiftui,swiftui-text,Swift,Swiftui,Swiftui Text,我似乎无法理解如何确保我的文本覆盖并符合圆形图像的边界。这就是我目前所拥有的 Circle() .框架(宽度:100,高度:100) .覆盖( 文本(“reaaaallllyyyyyy loooooongggg”) .foregroundColor(颜色:红色) .frame(最小宽度:0,最大宽度:无穷大) ) 在SwiftUI中有什么方法可以让它工作吗?如何实现这一点?struct-ClippedCircleView:View{ struct ClippedCircleView: Vie
Circle()
.框架(宽度:100,高度:100)
.覆盖(
文本(“reaaaallllyyyyyy loooooongggg”)
.foregroundColor(颜色:红色)
.frame(最小宽度:0,最大宽度:无穷大)
)
在SwiftUI中有什么方法可以让它工作吗?如何实现这一点?struct-ClippedCircleView:View{
struct ClippedCircleView: View {
@State var text: String = "Reaaaallllllyyyyyy Looooooongggggg"
// Make this any number you are comfortable with
@State var letterLimit: Int = 12
var body: some View {
Circle()
.frame(width: 100, height: 100)
.overlay(
Text(text)
//Limit to 1 line until your letterLimit
.lineLimit(text.count <= letterLimit ? 1 : nil)
//Clips it to shape
.clipShape(ContainerRelativeShape()).padding()
.foregroundColor(Color.red)
//This makes super tiny letters so adjust to your use case
.minimumScaleFactor(0.1)
)
}
}
@State var text:String=“Reaaaallllllyyyyyy loooooongggg”
//让这个数字成为你喜欢的任何数字
@状态变量letterLimit:Int=12
var body:一些观点{
圈()
.框架(宽度:100,高度:100)
.覆盖(
文本(文本)
//限制为1行,直到您的letterLimit
.lineLimit(text.count我对SwiftUI一无所知,但很可能您必须像使用Cocoa一样使用TextKit,如本例所示:这对我很有效。对于示例中的长字符串,如果字符串超过一定长度,您是否会将字体变小?这样它就可以放在一行上。您可以只设置.linelimit
以所需的长度为条件。请参阅代码。