剛開始做xamarin畫面設計時真的是抱怨連連,尤其是習慣了html的人
雄雄想要在文字標籤中加個底線,卻一直不知如何著手.
label物件中有個文字屬性叫AttributedText,就可以派上用場了
(事實上你在GUI builder中找label的"text"屬性欄位,就Plain & Attribute,但是你選了「Attributed」會出現「not support in this version」.....沒錯啦,在xcode設計工具中是有的選)
回到問題,要做個堂堂正正的...不,要做有個底線的文字標籤,就參考以下的做法:
----------------------------------------
myLabel.AttributedText = new NSAttributedString(
"別踩了我的底線",
underlineStyle: NSUnderlineStyle.Single);
----------------------------------------
事實上這個機制,還可以套用更複雜的html語法
==================================
var attr = new NSAttributedStringDocumentAttributes();
var nsError = new NSError();
attr.DocumentType = NSDocumentType.HTML;
var myHtmlText = "<u>I服了 You</u>";
var myHtmlData = NSData.FromString(myHtmlText, NSStringEncoding.Unicode);
myLable.AttributedText = new NSAttributedString(myHtmlData, attr, ref nsError);
==========================
來源參考:
1.https://forums.xamarin.com/discussion/23670/how-to-display-html-formatted-text-in-a-uilabel
2.https://stackoverflow.com/questions/15643232/underline-text-in-uilabel-in-monotouch-porting-objc-code
3.https://www.youtube.com/watch?v=5-ZnV3jQd9I
以上,加油了!!
2017年6月27日 星期二
2017年6月12日 星期一
for Xamarin IOS : 為什麼「 NSData.FromString(uri)」總是傳回空(null)值!?
公司已經把觸手從賣場伸向行動設備了
原本在pos上的資源可以用http下載的方式跟手機平台契合
在做商品查詢中一定會用到圖片下載
明明在公司內部網路就正常,
可是一旦用internet時,「var data=NSData.FromString(uri)」就會傳回空值,連帶接下來的「UIImage.LoadFromData(data);」它就死掉了
Google一下,原來這個URL是要用https才行,
蘋果真的是太龜毛了可是我就是要用非https的網路資源啊也不是無可救藥啦只要在info.plist最後加上這個設定
==========================
就可以了來源在這裡
大家一起加油吧
原本在pos上的資源可以用http下載的方式跟手機平台契合
在做商品查詢中一定會用到圖片下載
明明在公司內部網路就正常,
可是一旦用internet時,「var data=NSData.FromString(uri)」就會傳回空值,連帶接下來的「UIImage.LoadFromData(data);」它就死掉了
Google一下,原來這個URL是要用https才行,
蘋果真的是太龜毛了可是我就是要用非https的網路資源啊也不是無可救藥啦只要在info.plist最後加上這個設定
==========================
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
================================
就可以了來源在這裡
大家一起加油吧
2017年6月5日 星期一
for Extjs4 ,如何正確使用Ext.TaskManager.start & Ext.TaskManager.stop
範例如下:
===================================
var config = {
msg: 'Display Time',
modal: true,
buttons: Ext.Msg.OKCANCEL,
fn: displayTime
}
Ext.MessageBox.msgButtons[0].setText('Start');
Ext.MessageBox.msgButtons[3].setText('Stop');
Ext.MessageBox.show(config);
function start_task() {
Ext.MessageBox.updateText('????:' + Ext.util.Format.date(new Date(), 'Y-m-d g:1:s A'));
}
var task = { // moved outside function so it was not called over and over
run: start_task,
scope: this,
interval: 1000
}
function displayTime(id) {
if (id == 'ok') {
// task was here ... was not always defined due to if statement; was also recalled each time
Ext.TaskManager.start(task);
} else {
Ext.MessageBox.updateText('Paused!');
Ext.TaskManager.stop(task);
}
};
============I tried,it works===========================
來源網址在此
大家一起加油吧
===================================
var config = {
msg: 'Display Time',
modal: true,
buttons: Ext.Msg.OKCANCEL,
fn: displayTime
}
Ext.MessageBox.msgButtons[0].setText('Start');
Ext.MessageBox.msgButtons[3].setText('Stop');
Ext.MessageBox.show(config);
function start_task() {
Ext.MessageBox.updateText('????:' + Ext.util.Format.date(new Date(), 'Y-m-d g:1:s A'));
}
var task = { // moved outside function so it was not called over and over
run: start_task,
scope: this,
interval: 1000
}
function displayTime(id) {
if (id == 'ok') {
// task was here ... was not always defined due to if statement; was also recalled each time
Ext.TaskManager.start(task);
} else {
Ext.MessageBox.updateText('Paused!');
Ext.TaskManager.stop(task);
}
};
============I tried,it works===========================
來源網址在此
大家一起加油吧
訂閱:
文章 (Atom)