Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 如何使文本适合圆形/图像快捷界面的边界_Swift_Swiftui_Swiftui Text - Fatal编程技术网

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
以所需的长度为条件。请参阅代码。