精华内容
下载资源
问答
  • Label 文字显示一行半,或者多行半

    千次阅读 2016-11-28 16:58:41
    最近开发遇到这样的需求,让label显示一行半 (其实是: 当文字内容小于一行半的时候会根据全部显示,当文字内容多余一行半的时候就显示一行半,后面拼接...),如图效果 上代码: 一共有三个方法,包含控制行间距的...

    最近开发遇到这样的需求,让label显示一行半 (其实是: 当文字内容小于一行半的时候会根据全部显示,当文字内容多余一行半的时候就显示一行半,后面拼接...),如图效果


    上代码: 一共有三个方法,包含控制行间距的代码


    - (void)viewDidLoad {

        [super viewDidLoad];

        NSString *newStr =@"天外飞鸿剧评:好剧 天外飞鸿剧评:好剧天外飞鸿剧评:好剧 天外飞鸿剧评:好剧天外飞鸿剧评:好剧 天外飞鸿剧评:好剧天外飞鸿剧评:好剧 天外飞鸿剧评:好剧天外飞鸿剧评:好剧 天外飞鸿剧评:好剧天外飞鸿剧评:好剧 天外飞鸿剧评:好剧天外飞鸿剧评:好剧 天外飞鸿剧评:好剧天外飞鸿剧评:好剧 天外飞鸿剧评:好剧";

        [newStr stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];  //去除掉首尾的空白字符和换行字符

        newStr = [newStr stringByReplacingOccurrencesOfString:@"\r" withString:@""];

        newStr = [newStr stringByReplacingOccurrencesOfString:@"\n" withString:@""];

        //创建label,WIDTH是宏定义的屏幕宽度

        UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(20, 100, WIDTH-40, 100)];

        label.numberOfLines = 0;

        label.backgroundColor = [UIColor orangeColor];

        label.textColor = [UIColor redColor];

        label.font = [UIFont systemFontOfSize:14.0];

        label.text = newStr;

        [self.view addSubview:label];

        

        [label sizeToFit];

        NSString *string = [self getWidthWithLabel:label];

        label.text = string;

        

        [self adjustLabelLineSpacing:label];

        

        


        

    }


    //核心代码控制显示一行半的方法

    - (NSString *)getWidthWithLabel:(UILabel *)label{

        NSString *temp =nil;

        NSString *temp1=label.text;

        CGFloat length = 0;

        for(int i =0; i < [label.text length]; i++)

        {

            temp = [label.text substringWithRange:NSMakeRange(i,1)];

            // 计算宽度

            CGSize size = [temp boundingRectWithSize:CGSizeMake(MAXFLOAT, 0.0) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName : label.font} context:nil].size;

            

            length=length+size.width;

            // 3*label.frame.size.width   此处是三行半,根据需求设置

            if (length >= (3*label.frame.size.width + 0.5 * label.frame.size.width)) {

                temp1= [[label.text substringToIndex:i] stringByAppendingString:@" ..."];

                return temp1;

                

            }

        }

             return temp1;


    }


    //控制行间距

    -(CGSize)adjustLabelLineSpacing:(UILabel *)label

    {

        CGSize size = CGSizeZero;

        label.text = ((NSNull *)label.text == [NSNull null] || label.text == nil) ? @"" : label.text;

        NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc]initWithString:label.text];;

        NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc]init];

        [paragraphStyle setLineSpacing:6];

        [attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, label.text.length)];

        

        label.attributedText = attributedString;

        //调节高度

        size = CGSizeMake(label.frame.size.width, 500000);

        

        CGSize labelSize = [label sizeThatFits:size];

        

        CGRect rect = label.frame;

        rect.size.width = labelSize.width;

        rect.size.height = labelSize.height;

        label.frame = rect;

        

        return size;

    }




    展开全文
  • 效果图: 代码如下: 测试  div{  width:100px;  background:#00ff00;  white-space:nowrap;   overflow:hidden;  text-overflow:ellipsis;... 这是测试文字好长好长好长

    效果图:

    代码如下:

    <head>
    <meta charset="utf-8">
    <title>测试</title>
    <style>
        div{
            width:100px;
            background:#00ff00;
            white-space:nowrap; 
            overflow:hidden;
            text-overflow:ellipsis;
        }
    </style>
    </head>
    <body>
        <div>这是测试文字好长好长好长</div>
    </body>
    </html>

    展开全文
  • TextView一行显示一文字效果

    千次阅读 2017-12-21 18:58:25
    TextView一行显示一文字,可以显示多行,相当于文字像对联那样竖着写下来,效果如下: 虽然有android:ems="1"或者android:maxEms="1"这两个属性,但是显示出来的结果总是一行有两个文字,并不是想要的效果...

    TextView一行只显示一个文字,可以显示多行,相当于文字像对联那样竖着写下来,效果如下:


    虽然有android:ems="1"或者android:maxEms="1"这两个属性,但是显示出来的结果总是一行有两个文字,并不是想要的效果。所以说这两个属性应该并不那么简单。

    其实em这个的意思是equal M,就是设置这个属性的宽度是按M这个宽度来计算的,TextView的宽度很大的话,这个显示出来并不是一个文字。

    所以解决方法就是在TextView外面再套一个布局,然后TextView的宽度设置为wrap_content,这样就可以达到效果了。

    大概的布局如下:

    <RelativeLayout
                    android:id="@+id/hdl_handle_view"
                    android:layout_width="40dp"
                    android:layout_height="173dp"
                    android:gravity="center"
                    android:layout_gravity="center_vertical"
                    android:background="@drawable/sliding_handle_bg_selector">
                    <TextView
                        android:id="@+id/hdl_handle_view_text"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:ems="1"
                        android:maxEms="1"
                        android:gravity="center"
                        android:textColor="@drawable/sliding_handle_text_selector"
                        android:text="@string/report_in"
                        android:layout_gravity="center_vertical" />
                </RelativeLayout>


    展开全文
  • CSS 设置文字显示一行,多余显示省略号

    万次阅读 多人点赞 2018-05-10 10:31:04
    CSS 设置文字显示一行,多余显示省略号 .view-text{ /** 思路: 1.设置inline-block属相 2.强制不换行 3.固定高度 4.隐藏超出部分 5.显示“……” */ display: inline-block; white-space: nowrap; ...

    CSS 设置文字只显示一行,多余显示省略号

    
    .view-text{
      /**
    	思路:
    	1.设置inline-block属相
    	2.强制不换行
    	3.固定高度
    	4.隐藏超出部分
    	5.显示“……”
      */
      display: inline-block;
      white-space: nowrap; 
      width: 100%; 
      overflow: hidden;
      text-overflow:ellipsis;
    }
    

    显示两行

    <div class="text2">热卖精选:从子频道(服饰鞋包,亲子,居家,美妆)档期里面挑选出来,库存大于30%的高信价比商品list,数量为50个</div>
    
    /**
    思路:
    	1.超出的文本隐藏
    	2.溢出用省略号显示
    	3.溢出不换行
    	4.将对象作为弹性伸缩盒子模型显示
    	5.从上到下垂直排列子元素(设置伸缩盒子的子元素排列方式)
    	6.这个属性不是css的规范属性,需要组合上面两个属性,表示显示的行数
      */
      .text2{
    	width:200px;
    	word-break:break-all;
    	display:-webkit-box;
    	-webkit-line-clamp:2;
    	-webkit-box-orient:vertical;
    	overflow:hidden;
    }
    
    展开全文
  • 在我们设置样式的时候,不可避免的涉及到内容只出现一行或只出现自己想要的行数。 1.首先说一行的问题。 <div class="outer"> 如果内容超出,还会看到现在的内容吗?哒哒哒哒哒 </div> .outer ...
  • 文字一行显示,超出部分显示省略号设置此属性文字只可以显示一行
  • css动画让文字一行一行逐渐显示

    千次阅读 2019-12-24 16:31:47
    这几天在做个年终总结的活动,需要将显示的内容以动画的形式逐渐显示, 而且还要使用轮播的效果显示好几页,每页内容都不同 其实简单的css就可以实现,但是css代码太长,就写了个循环用js实现啦我是在Vue的基础...
  • 显示一行: overflow: hidden; text-overflow:ellipsis; white-space: nowrap; 显示多行: overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp:1; -webkit-box-o...
  • 文字多了就添加省略号,不用程序去判断字符,英文和汉字的字符数量是不对应的,一个汉字占两个英文字符的位置,如果一行出现了英文字符,裁切就不准确了,不过用css可以办到控制文字显示一行,超出部分显示省略号...
  • css让文字一行显示

    千次阅读 2019-02-26 23:03:00
    css让文字一行显示 1.例如 p元素,里面的文字不换行显示,超出部分不隐藏 p{ width:100px; word-break:keep-all; white-space:nowrap; } 2.例如 p元素,里面的文字不换行,超出部分用省略号代替 p{ width:...
  • 描述:利用css限制文字显示一行,超出部分显示省略号 解决方案: width: 300px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; 分析: 1、text-overflow: ellipsis;  这里的重点样式是...
  • Vue小白笔记3——一行文字过多时,省略号隐藏显示
  • 使用两个UILabel,每一行就是一个只显示一行的Label,第一个label的截断设置为NSLineBreakByWordWrapping,第二个设置为NSLineBreakByTruncatingTail 首先把要设置的字符串设置为第一个label的Text,这时的第一个label...
  • 用CSS让字体一行显示不换行

    千次阅读 2016-11-12 17:25:58
    用CSS让字体一行显示不换行当一行文字超过DIV或者Table的宽度的时候,浏览器中默认是让它换行显示的,如果不想让他换行要怎么办呢?用CSS让文字一行显示不换行的方法一般的文字截断(适用于内联与块):.text-...
  • CSS段落文字显示一行,超出部分显示省略号,鼠标悬浮显示全部段落内容 1. 给段落设置属性 .longlinedots{ max-width: 900px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } max-width:...
  • 在其他应用全屏的情况下,仍然显示。比如玩游戏的时候显示的帧数,等等。怎么才能让字不被其他应用盖住。
  • 我们要想实现单行显示并将多余文字显示为省略号... 第步是将TextView设置为单行 可以用 android:singleLine="true"或者 android:maxLines="1" 实现 然后再加入属性 android:ellipsize = "end"即可实现单行...
  • TextView设置为只显示一行文字

    千次阅读 2018-09-25 09:34:30
    演示效果如上图,按下回车依然只有一行。singleLine已经被删除,所以只有使用maxLines或者Lines
  • 如何让TextView只显示一行文字,对显示不完的内容使用省略号替代。
  • CSS DIV布局中出现单行或多行文字的每文字内容不能显示全,上下文字有点点重叠现象,文字字体只显示一半解决方法,在低版本IE特别明显文字字体显示不全,在谷歌浏览器等高版本IE浏览器测试还好些。 新手布局...
  • 1.文字一行显示: div { width: 150px; overflow: hidden; text-overflow: ellipsis; /* 文字超出部分省略号显示 */ white-space: nowrap; /* 不换行 */ }   2.文字两行显示: div { text-overflow: -o...
  • table内文字一行显示

    千次阅读 2016-03-10 17:05:56
    /*样式*/ table{display:fixed;width:100%;...针对要一行显示文字添加样式类inlinetxt inlinetxt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}    Document    
  • 一行显示否则省略号 word-break: break-all; /*属性规定自动换行的处理方法。normal(使用浏览器默认的换行规则。),break-all(允许在单词内换行。),keep-all(只能在半角空格或连字符处换行。)*/ text-overflow: ...
  • 在开发中遇到了一个问题,需要一个小图标和图标的说明文字,放在一行显示。 弄了半天,终于弄出来了。大致的设置如下: 在html中,图片和文字的设置如下:      通过    驳回  
  • android TextView一行显示一文字

    千次阅读 2012-07-27 18:01:10
    设置完成,运行之后才发现,我的TextView每行显示的是2个文字. 然后就在网上找资料.但资料很少.我也不知道是大家在平时碰到这种效果机会少呢还是这个效果就是菜鸟级别,入门就懂的.不管是哪种,我都把我实现的方法给...
  • 1) TextView在显示中文的时候 标点符号不能显示一行的行首和行尾,如果一个标点符号刚好在一行的行尾,该标点符号就会连同前一个字符跳到下一行显示; 2)一个英文单词不能被显示在两行中( Tex
  • CSS对于字体一行显示,过长隐藏

    千次阅读 2018-08-24 21:29:22
    前端CSS样式,将过长的内容一行显示,超出部分隐藏,并用...省略号代替(待完善) white-space: nowrap;/*一行显示*/ overflow: hidden;/*超出部分隐藏*/ text-overflow: ellipsis;/*用...代替超出部分*/ ...
  • .out {  float: left;  position: relative;  left: 50%;  }  .inner{  text-align: left;  text-decoration: none;  display: -webkit-box;  ...
  • 1,css超出一行用点表示 white-space:nowrap; overflow:hidden; text-overflow:ellipsis; 2,css超出二行用点表示 overflow:hidden; text-overflow:ellipsis; display:-webkit-box; -webkit-box-orient:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 501,868
精华内容 200,747
关键字:

文字显示一行