0

我想要完整显示(在多行上,不换行)有点长的 RTL(希伯来语)文本,并且无论我如何尝试修复它,它都会在右侧溢出/截断。

这实际上是 Text 组件中的一个问题,但值得一提的是,我尝试在 List 和 ScrollView 中包含项目,但未能成功解决问题(而 ScrollView 产生了更好的结果)。这是它的外观:

项目视图 - 正在剪切的文本

“坏”文本示例(在 iPhone 11 Pro Max 上):

פגשדשעצשדלעצשדלעצשדלעצשלדצעשדצגךגתךתשדצגךגתךתדדגעדגדגגגחלגחלגחלגדחדדגכחדגחדגחדחדכחדגחדגחחחחחחחחחחדלעצשדלעצשדלעצדשצעשדעגצלגצעלדשצעכשלדעצלשדשדלעצשדלעשדלעצשדלעשדלעצשדלעשלדצעלשדעדלשעצשלשלדצעלשדעדלשעצשלשלדצעלשדעדלשעצשלפ

有谁知道我该如何解决这个问题?这实际上是我在 StackOverflow 中的第一个问题,这就是我的绝望:)

这是滚动视图:

ScrollView {
    VStack(alignment: .leading, spacing: 10) {
        ForEach(self.items, id: \.id) { item in
            item
        }
    }
}

这是一个项目:

var body: some View {
    VStack(alignment: .leading) {
        HStack {
            Text(reporter)
                .font(.caption)
            Text(formatDate(date: date))
                .font(.caption)
                .foregroundColor(.gray)
        }

        Text(text)
            .font(.body)
            .fixedSize(horizontal: false, vertical: true)
    }
    .padding() 
}

我正在.environment(\.layoutDirection, .rightToLeft)使用ContentView

let contentView = ContentView()
.environment(\.colorScheme, .dark)
.environment(\.layoutDirection, .rightToLeft)

谢谢,乌里

4

2 回答 2

0

鉴于“坏”文本示例,以下项目组合似乎适用于 iPhone 11 Pro Max(模拟器)、iPhone 10(真实设备)和 macos 催化剂中的 ios 13.4.1。但话又说回来,我无法确定希伯来语。

struct Item: View, Identifiable {

var id = UUID().uuidString
var text = ""

// testing with simple " and tripple """
init(_ tx: Int) {
    if tx == 1 {
        text = "פגשדשעצשדלעצשדלעצשדלעצשלדצע שדצגךגתךת שדכצשדלכצדלעצשדלעצדשלעצשדלעשדלעצשדלעצשכידי געדגדגיג גיחלג דגחידחד דגיכחדגחדגח דחדכחדגחדגחחחחחחחחחחדלעצשדלעצשדלעצדשצעשדעגצ לגצעלדשצעכשלדעצלשד שדלעצשדלע שלדצעלשדעדלשעצשליפי"
    } else {
        text = """
        פגשדשעצשדלעצשדלעצשדלעצשלדצע שדצגךגתךת שדכצשדלכצדלעצשדלעצדשלעצשדלעשדלעצשדלעצשכידי געדגדגיג גיחלג דגחידחד דגיכחדגחדגח דחדכחדגחדגחחחחחחחחחחדלעצשדלעצשדלעצדשצעשדעגצ לגצעלדשצעכשלדעצלשד שדלעצשדלע שלדצעלשדעדלשעצשליפי
        """
    }
}

var body: some View {
    VStack(alignment: .trailing) {
        Text(text)
            .font(.body)
            .fixedSize(horizontal: false, vertical: true)
    }.padding(.leading, 10)
}
}
于 2020-04-17T02:02:25.847 回答
0

我创建了一个简单的测试来显示我认为看起来不会被截断的希伯来语文本:从网络上的某个地方复制和粘贴文本。

struct ContentView: View {
@State var items = [Itemx(1), Itemx(2)]
var body: some View {
    ScrollView {
        VStack(alignment: .leading, spacing: 10) {
            ForEach(self.items, id: \.id) { item in
                item
            }
        }
    }
}
}

struct Itemx: View, Identifiable {
var id = UUID().uuidString
var text = ""

init(_ tx: Int) {
    if tx == 1 {
        text = "פליה כלשהיא מטעמי גזע, צבע, מין, לשון, דח, דעה פוליטית או דעה בבעיות אחרות, בגלל מוצא לאומי או חברתי, קנין, לידה או מעמד אחר. גדולה מזו, לא יופלה אדם על פי מעמדה המדיני, על פי סמכותה או על פי מעמדה הבינלאומי של המדינה או הארץ שאליה הוא שייך, דין שהארץ היא עצמאית, ובין שהיא נתונה לנאמנות, בין שהיא נטולת שלטון עצמי ובין שריבונותה מוגבלת כל הגבלה אחרת"
    } else {
        text = """
        מבוקשים. ב עסקים אחרות לחשבון אחד, לערך הבאים אחר של, אם אחר אינו ספרות. לכאן משפטית את תנך, אחר אל רוסית נבחרים, שנורו גיאוגרפיה לרפובליקה אם סדר. פיסיקה טכניים שימושיים כדי בה.

        כדור המלחמה ביולוגיה של זכר, לוח אספרנטו סוציולוגיה של. ויקי לאחרונה קרן מה. על רקטות פולנית בדף, החלה ארכיאולוגיה על בדף. שתפו פולנית או אחד. משחקים פילוסופיה אתה ב, ויש המזנון תקשורת של, גם אחר בחירות מיתולוגיה. בדף שנתי לציין בחירות דת, אל כלליים תיאטרון גיאוגרפיה כתב.

        על נוסחאות האנציקלופדיה העריכהגירסאות עוד, הרוח מדויקים המקושרים כלל על, בה תיבת בהבנה לעברית היא. חפש בהשחתה כלליים פסיכולוגיה או. כלשהו מדינות ב שער, חפש לערוך לחשבון של. אנא סרבול צרפתית גם, אחד של קודמות מועמדים. אם שתי מאמר ומדעים חרטומים, פיסול בדפים זכויות שכל ב. צ'ט למנוע עיצוב הבהרה מה, הבקשה איטליה מבוקשים או זכר. מה בקר כלכלה ספרדית.

        זאת רוסית ביולי את, אנגלית ותשובות ויקימדיה היא מה, אל זאת ספרדית חופשית. בקר ספרדית משחקים התפתחות דת. בה מרצועת קצרמרים קרימינולוגיה מתן, רקטות לתרום טכנולוגיה על מתן, שנתי רפואה על כתב. מתן ובמתן תקשורת המקושרים בה. המדינה ומהימנה דת שמו.

        גם מדע הטבע הבאים ברוכים. החברה למתחילים היא אם. העזרה לרפובליקה בה עזה, מיוחדים מאמרשיחהצפה תנך דת. הרוח מיזמים בלשנות או שער, מלא חשמל שדרות בקלות אם, כתב זקוק עסקים מאמרשיחהצפה אם.

        חפש על כיצד ובמתן. מדינות למאמרים מדע דת, על כתב שונה פילוסופיה אתנולוגיה, על תרבות בארגז למתחילים לוח. שיתופית מבוקשים כלל אם, ניהול ספינות ויש בה, גם עזה כניסה ריקוד היסטוריה. פיסיקה לויקיפדיה ביוטכנולוגיה ויש בה, מתמטיקה תאולוגיה מלא או. שפות משפטית את אתה, הקנאים ויקיפדיה מדע ב. שמות דרכה שנורו בה שער, ויש חשמל טכנולוגיה על.

        שנורו לתרום היא על, בשפה קישורים מה כדי. גם ויש בארגז סוציולוגיה. ליום מונחונים על אחד. מיזמים כלליים רשימות צ'ט גם, מדע קבלו אחרים אם. לחבר ניהול קלאסיים אנא גם, או ומהימנה תאולוגיה שמו, ויש דת משפטים קולנוע.

        מדע ב בכפוף ברוכים. לוח בשפות סטטיסטיקה דת. הגרפים האנציקלופדיה על אחד, לוח אל הגרפים אינטרנט מיוחדים, של עזה רקטות וכמקובל. אל אחר תיבת רקטות, כיצד סטטיסטיקה בה כלל. העיר קולנוע איטליה דת לוח, כתב חינוך ברוכים נוסחאות אל. מדע החלה יוצרים ב.

        ארץ ראשי שדרות אינטרנט דת, מתן מיותר נוסחאות מה. אל עזה ספרדית צרפתית זכויות, רבה לעברית ומהימנה גם. החלל עזרה אירועים של שמו, צ'ט או תקשורת רשימות. מוגש מדעי סדר של. דת יוני פיסול שתי, של עוד בשפה שימושי מתמטיקה. בה מיזמים הנאמנים כלל, קרן את המדינה ומהימנה, ויש על נפלו ביולוגיה. שער שונה ביולי תחבורה את.

        אחרים בשפות העריכהגירסאות ב מדע. חפש בה פיסול רוסית מדינות. צ'ט קהילה פילוסופיה על, רקטות אודות שתי את, או לעריכה בלשנות מאמרשיחהצפה מתן. כדי המלחמה עקרונות אל, אנא אודות המזנון קצרמרים או.
        """
    }
}

var body: some View {
    VStack(alignment: .leading) {
        Text(text)
            .font(.body)
            .fixedSize(horizontal: false, vertical: true)
    }.padding()
}
}
于 2020-04-16T13:28:06.403 回答