IOS 小概念

1. Frame 和 Bounds的区别

      The frame rectangle, which describes the location and size of view in the view's own coordination.

      Frame属性定义了视图的大小和位置,通过这个视图的坐标系。

      

      The bounds rectangle, which describes the location and size of view in the superview's coordination.

      Bounds属性定义了视图的大小和位置,通过其父视图的坐标系。


      图1.

     


2.让子视图能够同父视图一起调整

      当改变视图的边框矩形时,其内嵌子视图的位置和尺寸也往往需要改变,以适应原始视图的尺寸。如果视图的autorizesSubviews属性被声明为YES,其子视图就能够根据autoresizingMask属性的值自动进行尺寸调整。简单配置一下视图的自动尺寸调整掩码往往能得到好的效果;否则,如果是更加复杂的变化,就要通过重载layoutSubviews来实现。

      以下是掩码的属性:

UIViewAutoresizingNone 
UIViewAutoresizingFlexibleHeight 
UIViewAutoresizingFlexibleWidth 
UIViewAutoresizingFlexibleLeftMargin 
UIViewAutoresizingFlexibleRightMargin  
UIViewAutoresizingFlexibleTopMargin 
UIViewAutorerizingFlexibleBottomMargin 
      字面上可以看出,FlexibleXXX指当父视图的高度(宽度)改变时,子视图的高度(宽度)也会随之改变,FlexibleXXXMargin则表示子视图会随着某一条边界更改,而其他边界保持不变。例如UIViewAutoresizingFlexibleBottomMargin, 当视图底边高度改变时,子视图会随之改变,而不论其顶部的边界,左右边界改变,子视图都不会发生改变。


3.NSString字符串的大小写问题

       可以利用的函数:

       1) lowercaseString;   将字符串全部改为小写

       2)uppercaseString;   将字符串全部改为大写

       3)capitalizedString;  将字符串的第一个字符改为大写

  

       除了以上三种情况,如果遇到更加特殊的情况如何处理?

       假设有下面这个情况, 给出 NSString * str, 把str中所有大写换成小写,所有小写换成大写:


(NSString *)invertcase:(NSString *)str {
     char * carr = [NSString UTF8String];
     
     for(int i = 0; carr[i]!='\0'; i++) {
          if(carr[i]<='Z' && carr[i]>='A') 
                carr[i] = carr[i] - 'A' + 'a';
          else if(carr[i] <='z' && carr[i] >='a')
                carr[i] = carr[i] - 'a' + 'A';
    }
    
    return [[NSString alloc] initWithUTF8String:carr]; 
}

    


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值