UITableViewにラベルを設定しています。そのラベルの文字数が120を超え、UItableViewCellを新しい大きなラベルに合わせて拡大する場合に限り、ラベルの最後に「もっと読む」ボタンを追加するにはどうすればよいですか?助けてください。私は、その後でread more
部分のNSLinkAttributeName
を追加(と...)NSAttributedString
120と文字に変えて、あなたはそれがラベルに行くように手動で文字列を調整する必要がありますと思います(SWIFT)ラベルに詳細を追加して展開するUITableViewCell
答えて
ダミーのURLは、textView shouldInteractWithURL
をオーバーライドし、そこに展開関数を入れてください(セルをフルストリングで再ロードするだけです)
あなたの答えをありがとう!データをリロードする前に、ラベルの高さをどのように拡大することができるかについて、いくつかの詳細を教えてください。そのラベルに関連する制約はどうですか? –
セルにラベルしかない場合は、セルの4辺をピン4に差し込み、 'UITableViewAutomaticDimension'で自動的に高さを計算させるようにすれば、ラベルの文字列を変更してtableViewの' beginUpdate'と 'endUpdate'を呼び出して高さを更新する – Tj3n
いいえ、そうではありません。ラベルの下に一定の高さではない画像があります。だから、私はちょうど4面を固定することはできません。 –
最初にlabelに割り当てる文字列を計算します。 120文字以上の場合は、セルの右下にボタンを作成して追加します(続き)。
を押しRead More
が、その後boundingRectWithSize
を使用して文字列のサイズを計算するとき、それは、セルのサイズを更新し、その特定のセルをリロードします。
一つのグローバルboolean
配列を作成します。その特定のセルをリロードButton
Read More
クリックイベントに
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
CGFloat height = 420; // assign initial height
CGRect lblFrame = CGRectMake(40, 50, 194, 50); //assign initial frame
NSString *strText = [someArray objectAtIndex:indexPAth.row];
CGRect rect = [strText boundingRectWithSize:CGSizeMake(lblFrame.size.width, FLT_MAX) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading context:nil];
if (rect.size.height > lblFrame.size.height || rect.size.height < lblFrame.size.height) {
float diff = rect.size.height - lblFrame.size.height;
height = height+diff+20;
}
if (isRowOpen[indexPath.row] == TRUE) {
CGRect rect = [strSharedText boundingRectWithSize:CGSizeMake(lblFrame.size.width, FLT_MAX) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading context:nil];
if (rect.size.height > lblFrame.size.height || rect.size.height < lblFrame.size.height) {
float diff = rect.size.height - lblFrame.size.height;
height = height+diff+20;
}
}
return height;
}
そして最後:
bool isRowOpen[];
をあなたの方法は次のようにする必要があります。展開する場合は、isRowOpen[selectedRow] = TRUE
を更新してください。あなたが崩壊したければ、再びisRowOpen[selectedRow] = FALSE
を更新してください。それで、あなたが望むものが効果を発揮します。 @VRAwesome答えのちょうどスウィフト3バージョン
詳細な回答ありがとうございます。しかし、可能ならば迅速にそれを必要とします。 –
あなたはそれを 'swift'で自分で変換することができます:) – VRAwesome
' strSharedText'はどこから来たのですか? –
:
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
var height: CGFloat = 333
// assign initial height
let lblFrame = CGRect(x: CGFloat(40), y: CGFloat(50), width: CGFloat(194), height: CGFloat(50))
//assign initial frame
let strText = currentChallenge.description as NSString
let rect = strText.boundingRect(with: CGSize(width: lblFrame.size.width, height: CGFloat(Float.greatestFiniteMagnitude)), options: [.usesLineFragmentOrigin, .usesFontLeading], context: nil)
if rect.size.height > lblFrame.size.height || rect.size.height < lblFrame.size.height {
let diff = rect.size.height - lblFrame.size.height
height = height + diff + 20
}
if isRowOpen[indexPath.row] == true {
let rect = strSharedText.boundingRect(with: CGSize(width: lblFrame.size.width, height: CGFloat(Float.greatestFiniteMagnitude)), options: [.usesLineFragmentOrigin, .usesFontLeading], context: nil)
if rect.size.height > lblFrame.size.height || rect.size.height < lblFrame.size.height {
let diff = rect.size.height - lblFrame.size.height;
height = height + diff + 20;
}
}
return height
}
strSharedTextはどこから来ていますか?あなたはロジックコメントが不足していて、アルゴリズムが機能していません。 –
私がしたのは、別のアンサーを何も変えずに最新のswiftに変換したことだけでした。任意のコメントをオリジナルのautho @vrawesomeに参照することができます –
- 1. ポリマー内のバージングリッド、展開可能な詳細行の追加
- 2. UITableViewCellの詳細ラベルを設定できません
- 3. UITableViewCell詳細テキストラベルテキストの色
- 4. 剣道詳細グリッドをデータバインド後に展開する
- 5. 詳細オプションをクリックするとドロップダウンリストが展開されます
- 6. BizTalk - 展開の詳細はどこに格納されます
- 7. UITableViewCellでラベルをプログラムで追加していますか?
- 8. ギャラリーの画像の[詳細]タブに追加項目を追加
- 9. 詳細検索データを追加
- 10. 詳細フォームにデータバインディングを介して新しいエンティティを追加する。
- 11. デフォルトのラベルにリンクを追加する方法UITableViewCell
- 12. RadGrid詳細テーブルへのGridDropdownColumnの追加
- 13. 詳細ビューからTableViewに行を追加します
- 14. UITableViewCellを詳細ビューの情報で更新するには?
- 15. Web Essentialsに不足しているベンダーの詳細を追加する2017
- 16. MapKit注釈詳細開示情報ボタンを追加する方法は?
- 17. マテリアルカードのリストと詳細アクティビティの間にモーションを追加する
- 18. 検索バーの隣に「詳細検索ボタン」を追加する
- 19. UITabBarControllerの詳細画面に情報ボタンを追加する
- 20. Vue詳細コンテンツを追加する方法動的に行
- 21. fullcalendarでイベントに関する詳細情報を追加
- 22. VSTS/TFSテストの要約にテストの詳細を追加する
- 23. Jenkinsパイプラインでビルドサーバーの詳細を追加するには?
- 24. sprocの詳細if条件を追加するには?
- 25. Antスクリプトの下にIHSサーバーの詳細を追加する
- 26. コメントブロックをキャンペーンの詳細ビューに追加するvtigerCRM
- 27. CoreAnimationでUITableViewCellを展開する
- 28. Javaカードのアプレット展開の詳細表示
- 29. より詳細なHerokuの展開理由
- 30. カテゴリに基づいて正しい詳細を追加する方法は?
利用できる非常に素晴らしい高度な設定のライブラリがあります(https://github.com/OpenFibers/DragRefreshAndLoadMoreTableDemo)[これを見る] – iphonic
私が何かを必要とします迅速に、私はそれを直接設定することができます。 –