Created
December 18, 2018 22:04
-
-
Save dennda/e6a801599de868ee80bfba92494989e9 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/DuolingoMobile/Sources/Library/UI/Views/SpeakableLabel.swift b/DuolingoMobile/Sources/Library/UI/Views/SpeakableLabel.swift | |
index 0e968a1a4b..90f125c75a 100644 | |
--- a/DuolingoMobile/Sources/Library/UI/Views/SpeakableLabel.swift | |
+++ b/DuolingoMobile/Sources/Library/UI/Views/SpeakableLabel.swift | |
@@ -183,7 +183,8 @@ class SpeakableLabel: UIView { | |
super.init(frame: .zero) | |
- for subview in [sentenceView, speakerView] as [UIView] { | |
+// for subview in [sentenceView, speakerView] as [UIView] { | |
+ for subview in [sentenceView] as [UIView] { | |
addSubview(subview) | |
} | |
@@ -219,6 +220,7 @@ class SpeakableLabel: UIView { | |
override func layoutSubviews() { | |
super.layoutSubviews() | |
if sentenceView.frame.width != sentenceView.preferredMaxLayoutWidth { | |
+ speakerView.frame = CGRect(origin: .zero, size: speakerSize) | |
sentenceView.preferredMaxLayoutWidth = sentenceView.frame.width | |
setNeedsLayout() | |
} | |
@@ -251,20 +253,20 @@ class SpeakableLabel: UIView { | |
make.edges.equalTo(self) | |
} | |
- speakerView.snp.remakeConstraints { make in | |
- let scriptDirection = textLanguage.scriptDirection | |
- switch scriptDirection { | |
- case .LTR: | |
- make.left.equalTo(self) | |
- case .RTL: | |
- make.right.equalTo(self) | |
- } | |
- | |
- // The sentence view should be accounting for the size of the speaker, so top aligning | |
- // the speaker with the sentence should center it vertically with the first line of text. | |
- make.top.equalTo(sentenceView) | |
- make.size.equalTo(speakerSize) | |
- } | |
+// speakerView.snp.remakeConstraints { make in | |
+// let scriptDirection = textLanguage.scriptDirection | |
+// switch scriptDirection { | |
+// case .LTR: | |
+// make.left.equalTo(self) | |
+// case .RTL: | |
+// make.right.equalTo(self) | |
+// } | |
+// | |
+// // The sentence view should be accounting for the size of the speaker, so top aligning | |
+// // the speaker with the sentence should center it vertically with the first line of text. | |
+// make.top.equalTo(sentenceView) | |
+// make.size.equalTo(speakerSize) | |
+// } | |
// super is supposed to be called last. | |
super.updateConstraints() | |
diff --git a/DuolingoMobile/Sources/Sessions/Controllers/Challenges/JuicyTranslateChallengeVC.swift b/DuolingoMobile/Sources/Sessions/Controllers/Challenges/JuicyTranslateChallengeVC.swift | |
index 3d6129fd9d..c7bec99b0a 100644 | |
--- a/DuolingoMobile/Sources/Sessions/Controllers/Challenges/JuicyTranslateChallengeVC.swift | |
+++ b/DuolingoMobile/Sources/Sessions/Controllers/Challenges/JuicyTranslateChallengeVC.swift | |
@@ -95,9 +95,13 @@ final class JuicyTranslateChallengeVC: UIViewController, DUOChallengeContentView | |
wordBankView = DUOWordBankView(frame: CGRect.zero) | |
prompt = SpeakableLabel(textLanguage: element.sourceLanguage) | |
- prompt.model = DUOHintableString(tokens: element.tokens) | |
+// prompt.model = DUOHintableString(tokens: element.tokens) | |
+ | |
+ prompt.model = DUOHintableString(string: "Este pueblo tiene dos supermercados.", language: "es") | |
+ prompt.hasSpeaker = true | |
+ | |
prompt.sentenceAccessibilityLabel = element.sentence | |
- prompt.hasSpeaker = element.sourceLanguage != element.courseFromLanguage && (element.ttsURL != nil) | |
+// prompt.hasSpeaker = element.sourceLanguage != element.courseFromLanguage && (element.ttsURL != nil) | |
super.init(nibName: nil, bundle: nil) | |
diff --git a/DuolingoMobile/Sources/Sessions/Views/DUOHintableTextView.m b/DuolingoMobile/Sources/Sessions/Views/DUOHintableTextView.m | |
index a59d1a54cf..ed88cb7a5d 100644 | |
--- a/DuolingoMobile/Sources/Sessions/Views/DUOHintableTextView.m | |
+++ b/DuolingoMobile/Sources/Sessions/Views/DUOHintableTextView.m | |
@@ -279,7 +279,11 @@ - (NSIndexSet *)indexesForCharactersOfTokenToHighlight:(NSString *)tokenToHighli | |
- (void)setWrapView:(UIView *)wrapView | |
{ | |
+ UIView *oldView = _wrapView; | |
+ [oldView removeFromSuperview]; | |
+ | |
_wrapView = wrapView; | |
+ [self addSubview:wrapView]; | |
[self setNeedsLayout]; | |
[self invalidateIntrinsicContentSize]; | |
} | |
@@ -327,25 +331,26 @@ - (CGSize)sizeThatFits:(CGSize)size | |
- (CGSize)intrinsicContentSize | |
{ | |
- CGFloat desiredMaxWidth; | |
- if (self.preferredMaxLayoutWidth > 0) { | |
- // In an AL context we need to subtract the wrapView's width here. | |
- // In theory I'm not sure we should be relying on its frame/bounds here (as opposed to its | |
- // intrinsicContentSize), but that might not get us much since the owner is also responsible for setting the | |
- // frame, which might cause the size to be different from the intrinsicContentSize. | |
- // | |
- // A better solution might be to indicate a preferred size and layout for the wrap view and have this class | |
- // be responsible for its layout. | |
- // | |
- // Or, better still, we rewrite this class and just use `NSTextContainer.exclusionPaths`, and then query that | |
- // for the correct size. | |
- // | |
- // Alas, we need a quick fix, and this seems like it does the trick for now. | |
- desiredMaxWidth = self.preferredMaxLayoutWidth - self.wrapView.bounds.size.width - [self wrapViewPadding]; | |
- } else { | |
- desiredMaxWidth = CGFLOAT_MAX; | |
- } | |
- | |
+// CGFloat desiredMaxWidth; | |
+// if (self.preferredMaxLayoutWidth > 0) { | |
+// // In an AL context we need to subtract the wrapView's width here. | |
+// // In theory I'm not sure we should be relying on its frame/bounds here (as opposed to its | |
+// // intrinsicContentSize), but that might not get us much since the owner is also responsible for setting the | |
+// // frame, which might cause the size to be different from the intrinsicContentSize. | |
+// // | |
+// // A better solution might be to indicate a preferred size and layout for the wrap view and have this class | |
+// // be responsible for its layout. | |
+// // | |
+// // Or, better still, we rewrite this class and just use `NSTextContainer.exclusionPaths`, and then query that | |
+// // for the correct size. | |
+// // | |
+// // Alas, we need a quick fix, and this seems like it does the trick for now. | |
+// desiredMaxWidth = self.preferredMaxLayoutWidth - self.wrapView.bounds.size.width - [self wrapViewPadding]; | |
+// } else { | |
+// desiredMaxWidth = CGFLOAT_MAX; | |
+// } | |
+ | |
+ CGFloat desiredMaxWidth = self.preferredMaxLayoutWidth > 0 ? self.preferredMaxLayoutWidth : CGFLOAT_MAX; | |
return [self sizeThatFits:CGSizeMake(desiredMaxWidth, CGFLOAT_MAX)]; | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment