美文网首页
实践-小细节Ⅴ

实践-小细节Ⅴ

作者: 進无尽 | 来源:发表于2017-07-28 17:51 被阅读0次

    1. 对于系统UIButton设置富文本的坑

      _submitButton.titleLabel.attributedText = [self creatAttributedString];
      #有效
      [_submitButton setAttributedTitle: [self creatAttributedString] forState:UIControlStateNormal];
    

    为什么不能这样呢,SDK说的很明确。


    2. 避免多个UICollectionView 在一个View中

    如果你在一个页面中创建了多个 UICollectionView 它们使用一套代理方法,也许在每个代理方法中你对当前的UICollectionView 做了判断,使用了不用的数据源,可是你会发现还是有莫名其妙的Bug,而且往往这些Bug,难以解释。

    正确的做法是: 如上图的效果,自定义一个包含一个Label 一个UICollectionView的视图,创建两个对象即可,这样可避免多个UICollectionView使用一套代理协议造成的莫名其妙的Bug。

    3. 限制输入小数点两位,超出限制范围输入不了

    这也算一条路,与其最后弹框提示,不如不让其输入违法字符。

    - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
    {
        if (![textField  isMemberOfClass:[OSTextField class]]) {
            return NO;
        }
        NSMutableString * futureString = [NSMutableString stringWithString:textField.text];
        [futureString  insertString:string atIndex:range.location];
    
        NSInteger flag=0;
        const NSInteger limited = 2;
        for (NSInteger i = futureString.length-1; i>=0; i--) {
        if ([futureString characterAtIndex:i] == '.') {
            if (flag > limited) {
                return NO;
            }
              break;
          }
        flag++;
      }
       return YES;
    }
    

    4. Bool和bool 的不同之处

    OC 中的BOOL 实际上是一种对带符号的字符类型(signed char)的类型定义(typedef),它使用8位的存储空间。通过#define指令把YES定义为1,NO定义为0。

    注意:objective-c 并不会将BOOL作为仅能保存YES或NO值的真正布尔类型来处理。编译器仍将BOOL认作8位二进制数,YES 和 NO 值只是在习惯上的一种理解。
    问题:如果不小心将一个大于1字节的整型值(比如short或int)赋给一个BOOL变量,那么只有低位字节会用作BOOL值。如果该低位字节刚好为0(比如8960,写成十六进制为0x2300),BOOL值将会被认作是0,即NO值。
    而对于bool类型,只有true和false的区别,即0为false,非0为true。

    举例:
    BOOL b1=8960; // 实际是 NO, 因为8960换成十六进制为0x2300,BOOL 只有8位存储空间,取0x2300的低8位,00,所以是NO
    bool b2=8960;//实际是true, 因为bool类型,非0即为true。

    5. cellForRowAtIndexPath的崩溃问题

    ReportTableViewCell *cell = [Tb cellForRowAtIndexPath:[NSIndexPath indexPathForRow:5 inSection:0]];
    

    inSection 不带就崩溃,这在表的删除某行,插入某行是同样适用。

    6.Pop回来导航栏隐藏时出现上出现一片空白

     方法1  [self.navigationController.navigationBar setHidden:YES];  
     方法2  [self.navigationController setNavigationBarHidden:YES];  
     方法3  [self.navigationController setNavigationBarHidden:YES animated:YES];  
    

    使用第三种方法,就不会出现返回时一片空白的情况了。

    7.UILabel上下居中

    image.png

    图中使用的是一个Label,为什么会出现图中这样的问题,出现顶部的大片空白是因为这个Label的高度太高,而内容却相对较少,把Label的高度设置短点即可。

    8.UIImageView的几种图片填充方式

    typedef enum {
       UIViewContentModeScaleToFill,
        UIViewContentModeScaleAspectFit,      // contents scaled to fit with fixed aspect. remainder is transparent
        UIViewContentModeScaleAspectFill,     // contents scaled to fill with fixed aspect. some portion of content may be clipped.
        UIViewContentModeRedraw,              // redraw on bounds change (calls -setNeedsDisplay)
        UIViewContentModeCenter,              // contents remain same size. positioned adjusted.
        UIViewContentModeTop,
        UIViewContentModeBottom,
        UIViewContentModeLeft,
        UIViewContentModeRight,
        UIViewContentModeTopLeft,
        UIViewContentModeTopRight,
        UIViewContentModeBottomLeft,
        UIViewContentModeBottomRight,
    } UIViewContentMode;
    

    UIViewContentMode 是UIView的属性,默认是第一种 UIViewContentModeScaleToFill,UIImageView下即图片适应UIImageView尺寸铺满 UIImageView。
    其他模式的效果如下:



    默认是这样的


    折中方法: 
    [self.headImage setContentMode:UIViewContentModeScaleAspectFill];
    self.headImage.clipsToBounds = YES;
    

    后是这样的


    9.swf是什么文件

    swf是flash动画文件,不少朋友经常玩的网页游戏以及网页视频电影其实都是swf文件,swf文件在网络中非常常见,比如:优酷或土豆视频播放的都是swf文件

    大家只要简单的理解为swf文件是动画文件即可,swf(shock wave flash)是Macromedia(现已被ADOBE公司收购)公司的动画设计软件Flash的专用格式,是一种支持矢量和点阵图形的动画文件格式,被广泛应用于网页设计,动画制作等领域。

    不过对于一个链接为 http:XXXXXXXXXXXX.swf 的视频链接,使用原声的视频播放器是无法播放的,而且使用 UIWebVIew加载也是无法显示的,可以这样理解,苹果封杀了 Flash文件(swf格式),不支持Flash的播放,这跟乔布斯讨厌Flash有关,目前为止,除了格式转化为 HTML文件播放,原声iOS环境是不支持swf文件的播放。

    10.获取某个APP的下载链接

    使用 Mac 里面的 iTunes

    相关文章

      网友评论

          本文标题:实践-小细节Ⅴ

          本文链接:https://www.haomeiwen.com/subject/tuihattx.html