ios复制粘贴控件类

iOS小知识点总结

2016-05-27  本文已影响430人  船长_
// 15 / 8 = 1
// 15 % 8 > 0  = 1(真)
  _pageC.numberOfPages = _mainVM.rowNumber / 8 + (_mainVM.rowNumber % 8  >  0);
NSUInteger count = squares.count;
int totalCols = 4;
unsigned long totalRows = (count + totalCols - 1) / 4;
#define kShowWarningDelayDuration   1
#define kTimeoutDuration 30
!block ?: block();
[tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
[collectionView selectItemAtIndexPath:indexPath animated:NO scrollPosition:UICollectionViewScrollPositionNone];
NSRange range = [string rangeOfString:@"," options:NSBackwardsSearch];
 if (range.location != NSNotFound)
[string deleteCharactersInRange:range];
// 或者:
NSString *cccc = [cut substringToIndex:[cut length] - 1];
// 在iOS7以上,所有控制器默认都是全屏的,上面20的状态栏高度也属于控制器
//返回的是带有状态栏的Rect
CGrect screenBounds = [ [UIScreen mainScreen] bounds]; 
//不包含状态栏的Rect 
CGRect viewBounds = [ [UIScreen mainScreen] applicationFrame];
  - (void)awakeFromNib {
    self.separatorInset = UIEdgeInsetsZero;
    self.layoutMargins = UIEdgeInsetsZero;
    self.preservesSuperviewLayoutMargins = NO;
}
  //红色¥ + 黑色数字
  NSDictionary *str1Dic = @{NSFontAttributeName:[UIFont systemFontOfSize:15], NSForegroundColorAttributeName: [UIColor redColor]};
  NSAttributedString *str1 = [[NSAttributedString alloc] initWithString:@"¥" attributes:str1Dic];
    
  NSDictionary *str2Dic = @{NSFontAttributeName:[UIFont systemFontOfSize:20], NSForegroundColorAttributeName: [UIColor blackColor]};
  NSAttributedString *str2 = [[NSAttributedString alloc] initWithString:price attributes:str2Dic];
  NSMutableAttributedString *attr = [NSMutableAttributedString new];
  [attr appendAttributedString:str1];
  [attr appendAttributedString:str2];
  _priceLb.attributedText = attr;
[self lastPathComponent];```
![Snip1.png](http:https://img.haomeiwen.com/i987457/b9aba6390a07992d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

- 10.过滤
```objc
// break是结束整个循环体,continue是结束单次循环
// 过滤掉非UITabBarButton
if (![@"UITabBarButton" isEqualToString:NSStringFromClass(subview.class)]) continue;
if (subview.class != NSClassFromString(@"UITabBarButton")) continue;
// 让上一个按钮取消选中状态
self.preBtn.selected = NO;
// 让当前按钮成为选中状态
btn.selected = YES;
// 让当前按钮变成上一个按钮
self.preBtn = btn;
1、nil:一般赋值给空对象;
2、NULL:一般赋值给nil之外的其他空值。 NULL是C的,空地址,地址的数值是0,是个长整数;如SEL等;
  举个栗子(好重啊~):
[NSApp beginSheet:sheet modalForWindow:mainWindow
                modalDelegate:nil //pointing to an object
                didEndSelector:NULL //pointing to a non object/class
                contextInfo:NULL]; //pointing to a non object/class
3、NSNULL:NSNull只有一个方法:+ (NSNull *) null;
  [NSNull null]用来在NSArray和NSDictionary中加入非nil(表示列表结束)的空值.
4、当向nil发送消息时,返回NO,不会有异常,程序将继续执行下去;
  而向NSNull的对象发送消息时会收到异常。
self.btn.translatesAutoresizingMaskIntoConstraints = NO;
  // 需要导入#import "EMSDWebImageCompat.h"
  #define dispatch_main_sync_safe(block)\
    if ([NSThread isMainThread]) {\
        block();\
    } else {\
        dispatch_sync(dispatch_get_main_queue(), block);\
    }

  #define dispatch_main_async_safe(block)\
    if ([NSThread isMainThread]) {\
        block();\
    } else {\
        dispatch_async(dispatch_get_main_queue(), block);\
    }

  // 使用:
  dispatch_main_async_safe((^{
                self.headIcon.image = [UIImage imagenamed:fsf];
            }));
  - (void)vibrate   {
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
}
NSUInteger index = [button.superview.subViews indexOfObject:button];

示例如下图

Snip20160522_7.png
#ifndef IBOutletCollection
#define IBOutletCollection(ClassName)
#endif

在Clang源码中,有更安全的定义方式,如下所示:

#define IBOutletCollection(ClassName) __attribute__((iboutletcollection(ClassName)))
  1. IBOutletCollection集合中对象的顺序是不确定的。我们通过调试方法可以看到集合中对象的顺序跟我们连接的顺序是一样的。但是这个顺序可能会因为不同版本的Xcode而有所不同。所以我们不应该试图在代码中去假定这种顺序。
  2. 不管IBOutletCollection(ClassName)中的控件是什么,属性的类型始终是NSArray。实际上,我们可以声明是任何类型,如NSSet,NSMutableArray,甚至可以是UIColor,但不管我们在此设置的是什么类,IBOutletCollection属性总是指向一个NSArray数组。
Snip20160522_9.png
[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60) forBarMetrics:UIBarMetricsDefault];
  CGRect frame=CGRectMake(0, 0, 0, CGFLOAT_MIN);
  self.tableView.tableHeaderView=[[UIView alloc]initWithFrame:frame];
  // 或
  - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
    if (section == 0) return CGFLOAT_MIN;
    return 6;
}
上一篇下一篇

猜你喜欢

热点阅读