1. 程式人生 > >iOS:如何實現在文字上新增拼音

iOS:如何實現在文字上新增拼音

#pragma mark - layout subviews
-(void)setupSubviewsConstraints {
    
    //(子檢視採用橫向瀑布流佈局)
    CGFloat margin = 2.5;
    CGFloat viewHeight = (kFont.pointSize+5) * 2;
    CGFloat sumWidth = 0;
    CGFloat limitWidth = kScreenWidth-2*margin;
    CGFloat viewX = margin;
    CGFloat viewY = margin;
    CGFloat row  
= 0; for (int i=0 ; i<self.contentArray.count; i++) { //實際寬度 CGFloat chineseWidth = [self layoutListNameLength:self.contentArray[i]]; CGFloat pinYinWidth = [self layoutListNameLength:self.pinYinArray[i]]; CGFloat maxWidth = MAX(chineseWidth, pinYinWidth);
//新增容器 UIView *containerView = [[UIView alloc] init]; [self addSubview:containerView]; //新增拼音 UILabel *pinYinLabel = [[UILabel alloc] init]; pinYinLabel.textColor = [UIColor grayColor]; pinYinLabel.font = kFont; pinYinLabel.text = self.pinYinArray[i]; pinYinLabel.textAlignment
= NSTextAlignmentCenter; [containerView addSubview:pinYinLabel]; //新增漢字 UILabel *chineseLabel = [[UILabel alloc] init]; chineseLabel.textColor = [UIColor blackColor]; chineseLabel.font = kFont; chineseLabel.text = self.contentArray[i]; chineseLabel.textAlignment = NSTextAlignmentCenter; [containerView addSubview:chineseLabel]; //設定約束 [containerView mas_makeConstraints:^(MASConstraintMaker *make) { make.height.equalTo(@(viewHeight)); make.width.equalTo(@(maxWidth)); make.left.equalTo(@(viewX)); make.top.equalTo(@(viewY)); }]; [pinYinLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.left.top.right.equalTo(containerView); make.height.equalTo(containerView.mas_height).multipliedBy(0.5); }]; [chineseLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.left.bottom.right.equalTo(containerView); make.height.equalTo(containerView.mas_height).multipliedBy(0.5); }]; //計算座標 sumWidth += (maxWidth + margin); if (i < self.contentArray.count-1) { chineseWidth = [self layoutListNameLength:self.contentArray[i+1]]; pinYinWidth = [self layoutListNameLength:self.pinYinArray[i+1]]; maxWidth = MAX(chineseWidth, pinYinWidth); } if (limitWidth - sumWidth >= maxWidth) { ///不換行 viewX = sumWidth + margin; } else{ ///換行 row++; sumWidth = 0; viewX = margin; if (i==self.contentArray.count-1) { row--; } } viewY = (viewHeight + 6*margin)*row + margin; } self.realHeight = viewY + viewHeight + 1.5*margin; }

相關推薦

iOS如何實現文字新增拼音

#pragma mark - layout subviews -(void)setupSubviewsConstraints { //(子檢視採用橫向瀑布流佈局) CGFloat margin = 2.5; CGFloat viewHeight = (kFont.point

iOS 給NSString文字新增橫線 中間和下劃線

有時候我們需要給文字新增橫線,有兩種情況: 第一種是貫穿中間的橫線: 橫線的顏色和文字的顏色保持一致 _oldPriceLabel.text = @"3500"; _oldPriceLabel.textColor = [UIColor lightGrayColor];

簡單實現UIActivityIndicatorView新增文字

- (void)webViewDidStartLoad:(UIWebView *)webView{     if (myAlert==nil){         myAlert = [[UIAlertView alloc] initWithTitle:nil                         

iOS開發 在圖片新增文字,圖片合成文字,圖片新增文字,美圖秀秀,美顏相機文字編輯

+ (UIImage *)imageWithText:(NSString *)text textFont:(NSInteger)fontSize textColor:(UIColor *)textColor

struts+ajax+jquery實現異步新增數據

sim orm html 沖突 lin itl nac 處理 ajax請求 很久未有更新,最近因為團隊其它事耽誤沒有繼續學習,但心中十分忐忑不安,抽空把自己薄弱的點拿來再鞏固一下! 本身異步刷新用處非常多,SSH框架對我來講,已無難度,但結合ajax處理一些增刪查改分頁等,

OpenCV實現影象新增漢字

OpenCV已經更新至3.0了,但自帶函式putText依然不支援影象上新增漢字,所以下面實現了影象中新增漢字功能,話不多說,程式碼奉上。 void GetStringSize(HDC hDC, const char* str, int* w, int* h) { SIZE size;

C++介面庫在GDI新增完全的alpha混合支援

    做完了小型WCF之後,就是小型的WPF了。之前那個完全避免使用者大部分的錯誤使用導致的死鎖的方案還有一點點的問題,所以先休息一下,做做別的。為了在C++上重現一套類似WPF的工具,首先要解決繪圖部分。    繪圖的裝置當然是需要可切換的,於是用bridge模式定義了大量的介面,這些介面用來

R語言實現文字分析例項(基礎篇)

#1載入軟體包: #1.1資料欲處理包: #Snowball(處理帶空格的語句) #rJava(rmmseg4j的支援包) #rmmseg4j(處理中文的分詞,把不帶空格的分為帶空格的。) #1.2文字分析包: #tm #資料處理## library (RODBC) excel_file <- od

iOS文字AttributedString的詳解

AttributedString可以分為NSAttributedString和NSMutableAttributedString兩種,在使用中通過把AttributedString賦值給控制元件的attributedText屬性來新增文字樣式。具有該屬性的控制元

SpringBoot入門系列篇(十一)實現檔案

前情提要 現在大多數的web開發基本都會用到檔案上傳這一個功能,檔案上傳分為單檔案上傳和多檔案上傳,下面就一一講解一下通過SpringBoot框架對兩種上傳的實現 SpringBoot實現單檔案上傳 首先建立一個html介面,包含一個for

iOS實現圖片的無限輪播---之使用第三方庫SDCycleScrollView

支援pod匯入 如果發現pod search SDCycleScrollView 搜尋出來的不是最新版本,需要在終端執行cd轉換檔案路徑命令退回到desktop,然後執行pod setup命令更

Spring Boot 2.x基礎教程實現檔案

檔案上傳的功能實現是我們做Web應用時候最為常見的應用場景,比如:實現頭像的上傳,Excel檔案資料的匯入等功能,都需要我們先實現檔案的上傳,然後再做圖片的裁剪,excel資料的解析入庫等後續操作。 今天通過這篇文章,我們就來一起學習一下如何在Spring Boot中實現檔案的上傳。 ## 動手試試 *

利用python pil 實現給圖片新增文字

最近的一個工程專案是講文字新增到影象上。 使用了opencv,結果發現利用opencv給影象新增文字有侷限。 (1)可利用的字型型別比較少,需要安裝Freetype擴充套件,比較複雜。 (2)不能用putText函式輸出中文,否則就會出現亂碼的情況 只好選擇使用pytho

iOS 仿淘寶,拉進入詳情頁面

skin memory 增加 方法 fin goto elf jsb gis 今天做的主要是一個模仿淘寶,上拉進入商品詳情的功能,主要是通過 tableView 與 webView 一起來實現的,當然也可根據自己的需要把 webView 替換成你想要的 1 //

把AspDotNetCoreMvc程序運行在Docker-part4實現負載均衡

dash run ner 網絡 endpoint width idg 識別 nginx 在上一part《把AspDotNetCoreMvc程序運行在Docker上-part3:使用獨立的存儲容器》,我們利用MySql容器和Volume實現了真正意義上的數據存儲。整個結

css動畫效果實現鼠標移入菜單欄文字下出現下劃線

boa 代碼 active lock osi int 事件 type 添加 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8">

iOS解決UITextView自適應高度粘貼大量文字導致顯示不全的問題

tex 顯示 輸入框 textview size self. uitext sel lec 一、描述 在UITextView輸入框中粘貼大量的文字時,UITextView內容自適應高度計算出現誤差,導致整塊文字上移消失。 二、方案 在UITextView文字改變的監聽中

Mac電腦使用解決Mac文字編碼Unicode(UTF-8)不適用”、文字編碼“中文 (GB 18030)不適用“的問題

在Mac電腦上面開啟txt檔案,有些時候由於格式不一樣或者其他原因,會打不開txt檔案,這樣就需要我們對文字編輯的偏好設定裡面進行修改即可。這裡我只說兩種打不開的情況,這兩種情況就是標題說的這兩種情況。 一、先介紹第一種情況:未能開啟文稿“docs(1).txt”。文字編碼“Unicode(

安卓自定義Toast 以及Toast的出場動畫 以及Toast新增圖片 以及點選事件

安卓自定義Toast: 1.自定義一個類:CustomToast 繼承自:Toast 2.在CustomToast類中 新增一個靜態 mCustomToast 物件 private static CustomToast mCustomToast; 3.在CustomToast類中 新

用Java實現給圖片新增文字水印-原始碼分享

直接上原始碼: 單張瓦片新增單個文字水印、可設定水印文字內容,字型,顏色,旋轉角度,透明度 controller層 import org.springframework.web.bind.annotation.GetMapping; import org.springframewo