iOS OC语法,初学记录

network | | 访问(71)
// storyboard模式下,命名私有变量 用weak弱类型
@property (nonatomic,weak) IBOutlet UITextField *num1;
@property (nonatomic,weak) IBOutlet UITextField *num2;
@property (nonatomic,weak) IBOutlet UILabel *resultnum;

// 命名一个字符串变量
NSString *n1 = self.num1.text;
NSString *n2 = self.num2.text;

// 命名数字变量,格式化数字类型
int result = n1.intValue+n2.intValue;

// 格式化输出
self.resultnum.text = [NSString stringWithFormat:@"%d",result];

// NSLog输出
NSLog(@"你好啊%@+%@=",n1,n2);

// 让视图关闭键盘
[self.view endEditing:YES];

// 定义枚举
typedef enum{TopEnum = 1,LeftEnum = 2,RightEnum = 3,BottomEnum = 4}MoveEnum;

#define moveDelta 20.0f;
CGRect bound = self.iconButton.bounds;
// 位移形变
self.iconButton.transform = CGAffineTransformTranslate(self.iconButton.transform,dx,dy);

[UIView beginAnimations:nil context:nil];// 执行动画 - 开始
// 中间放可执行代码
[UIView commitAnimations];// 执行动画 - 结束

// frame属性,通常用于实例化控件,指定初始值,如果需要改变控件位置,可以使用center属性,如果需要改变控件大小,可以使用bounds属性
CGPoint center = self.iconButton.center;
CGRect bound = self.iconButton.bounds;
CGRect frame = self.iconButton.frame;

// 创建按钮,使用alloc init方法实例化的按钮,就是custom类型的,一点指定不能修改,custom类型是最纯净的,不带有系统给予的默认属性或样式
UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(110, 100,100, 100)];
// 连线操作
self.iconButton = btn;
// 设置背景颜色
btn.backgroundColor = [UIColor redColor];
// 设置背景图片
[btn setBackgroundImage:[UIImage imageNamed:@"btn_02"] forState:UIControlStateNormal];
// 点中高亮时显示的图片
[btn setBackgroundImage:[UIImage imageNamed:@"btn_02"] forState:UIControlStateHighlighted];
// 设置按钮文字
[btn setTitle:@"点我啊" forState:UIControlStateNormal];
// 字体颜色
[btn setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
// 点中高亮时显示的文字
[btn setTitle:@"谢谢啊" forState:UIControlStateHighlighted];
// 高亮显示的字体颜色
[btn setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted];
// 文字垂直对齐,置顶
btn.contentVerticalAlignment = UIControlContentVerticalAlignmentTop;
// 将按钮添加到视图
[self.view addSubview:btn];
//绑定按钮
[_rightButton addTarget:self action:@selector(clickButton:) forControlEvents:UIControlEventTouchUpInside];

// 定义字典
NSDictionary *dict = @{@"name":@"biaoqingdi",@"desc":@"表情帝”};
_imgArray = @[dict,@{@"name":@"bingli",@"desc":@"病例"},@{@"name":@"chiniupa",@"desc":@"吃牛扒"},@{@"name":@"danteng",@"desc":@"蛋疼"},@{@"name":@"wangba",@"desc":@"王八"}];
self.imageList[self.index][@"desc"];
_noLabel.text = [NSString stringWithFormat:@"%d/%d",self.index+1,5];

// 在OC中如果对象没有强引用,会被立即释放,默认的对象,都是强引用的 __weak 表示弱引用 __strong 表示强引用
__strong Person *p = [[Person alloc] init];

// 创建一个实体对象
#import <Foundation/Foundation.h>
@interface Person : NSObject
@property (nonatomic, copy) NSString *name;
@end
#import "Person.h"
@implementation Person
/** ARC中dealloc主要用于调试,判断对象是否被释放 */
- (void)dealloc
{
    NSLog(@"Person被释放");
}
@end

// 关于图像的实例化
// imageNamed:系统推荐使用的,但是图像实例化之后的释放由系统负责,如果要自己释放图片,不能使用imageNamed方法!而需要使用imageWithContentsOfFile
// 提示:如果放在Images.xcassets中的图片,不能使用imageWithContentsOfFile ,Images.xcassets 中不要存放大的,不常用的图片
// 动画图片的数组
NSMutableArray *arrayM = [NSMutableArray array];
// 添加动画播放的图片
for (int i = 0; i < count; i++) {
    // 图像名称
    NSString *imageName = [NSString stringWithFormat:@"%@_%02d.jpg", name, i];
    // UIImage *image = [UIImage imageNamed:imageName];
    // ContentsOfFile需要全路径
    NSString *path = [[NSBundle mainBundle] pathForResource:imageName ofType:nil];
    UIImage *image = [UIImage imageWithContentsOfFile:path];
    // 添加到数组
    [arrayM addObject:image];
}

// 获取.plist 文件 "包" Bundle [NSBundle mainBundle]编译安装之后对应的程序包
NSString *path = [[NSBundle mainBundle] pathForResource:@"ImageList" ofType:@"plist"];
NSLog(@"%@", path);
// 在OC中ContentsOfFile,通常需要完整的路径
_imageList = [NSArray arrayWithContentsOfFile:path];

// 设置图像填充模式,等比例显示(CTRL+6)
icon.contentMode = UIViewContentModeScaleAspectFit;