| | |
| | | using System; |
| | | using Shared; |
| | | |
| | | #if __IOS__ |
| | | using UIKit; |
| | | using Foundation; |
| | | #endif |
| | | |
| | | namespace HDL_ON.UI |
| | |
| | | /// <summary> |
| | | /// TextButton |
| | | /// 解决iOS 文本到边框有边距问题 |
| | | /// |
| | | /// </summary> |
| | | public class TextButton : Button |
| | | { |
| | |
| | | #endif |
| | | |
| | | } |
| | | } |
| | | |
| | | int _lineSpacing; |
| | | /// <summary> |
| | | /// 设置行间距 |
| | | /// </summary> |
| | | public int LineSpacing |
| | | { |
| | | set |
| | | { |
| | | _lineSpacing = value; |
| | | SetButtonLineSpacing(_lineSpacing); |
| | | } |
| | | } |
| | | |
| | | |
| | | #if __IOS__ |
| | | /// <summary> |
| | | /// 按钮设置行距方法 |
| | | /// </summary> |
| | | /// <param name="spacing"></param> |
| | | void SetButtonLineSpacing(int spacing) |
| | | { |
| | | UIStringAttributes stringAttributes = new UIStringAttributes |
| | | { |
| | | Font = (this.uiView as MyButton).TitleLabel.Font, |
| | | ForegroundColor = UIColor.Black, |
| | | ParagraphStyle = new NSMutableParagraphStyle() { LineSpacing = spacing } |
| | | }; |
| | | var AttributedText = new NSMutableAttributedString(Text); |
| | | AttributedText.AddAttributes(stringAttributes, new NSRange(0, Text.Length)); |
| | | (this.uiView as MyButton).TitleLabel.AttributedText = AttributedText; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 显示当前文字需要几行 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | int GetNeedLinesWithWidth() |
| | | { |
| | | return 0; |
| | | } |
| | | /** |
| | | |
| | | |
| | | // @param width 给定一个宽度 |
| | | // @return 返回行数 |
| | | // */ |
| | | //- (NSInteger) needLinesWithWidth:(CGFloat) width |
| | | // { |
| | | // //创建一个labe |
| | | // UILabel * label = [[UILabel alloc] |
| | | // init]; |
| | | // //font和当前label保持一致 |
| | | // label.font = self.font; |
| | | // NSString* text = self.text; |
| | | // NSInteger sum = 0; |
| | | // //总行数受换行符影响,所以这里计算总行数,需要用换行符分隔这段文字,然后计算每段文字的行数,相加即是总行数。 |
| | | // NSArray* splitText = [text componentsSeparatedByString: @"\n"]; |
| | | // for (NSString* sText in splitText) |
| | | // { |
| | | // label.text = sText; |
| | | // //获取这段文字一行需要的size |
| | | // CGSize textSize = [label systemLayoutSizeFittingSize: CGSizeZero]; |
| | | // //size.width/所需要的width 向上取整就是这段文字占的行数 |
| | | // NSInteger lines = ceilf(textSize.width / width); |
| | | // //当是0的时候,说明这是换行,需要按一行算。 |
| | | // lines = lines == 0 ? 1 : lines; |
| | | // sum += lines; |
| | | // } |
| | | // return sum; |
| | | // } |
| | | |
| | | //#elif __Android__ |
| | | #else |
| | | |
| | | /// <summary> |
| | | /// 按钮设置行距方法 |
| | | /// </summary> |
| | | /// <param name="spacing"></param> |
| | | void SetButtonLineSpacing(int spacing) |
| | | { |
| | | (this.AndroidView as Android.Widget.Button).SetLineSpacing(spacing, 1); |
| | | } |
| | | |
| | | #endif |
| | | } |
| | | |
| | | |
| | | |
| | | } |