iOS开发脚踏实地学习day01-02-加法计算器和图片移动缩放旋转

本文探讨了Objective-C与Swift两种编程语言在iOS开发领域的应用与区别,包括如何利用Objective-C进行代码迁移,以及Swift语言特性如何提高开发效率。通过实例展示了两种语言在实际项目中的使用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


1、NSString类型和int类型互换:

int inta;

NSString *stra;

1)将NSString类型转为int 类型

inta = stra.intValue;//字符串本身就是整型数字

2)将一个int类型转为NSString类型

stra = [NSString stringWithFormat: "@%d", a];


2、遇到一个问题,是UITextField文本框,在iOS模拟器里点击只出现光标,不能弹出键盘。

提示错误“Can‘t find keyplane that supports type 5 for keyboard iPhone-Portrait-PhoneP”

解决方法:http://www.bubuko.com/infodetail-570660.html

是Xcode 6有小bug,只要设置一下就没问题了,设置的如下图:

点击模拟器上面的菜单:Hardware->Keyboard->ConnectHardware Keyboard这一项不要勾选,我们的键盘就能正常显示了,但是我们发现这样电脑的键盘就不能用了,所以要不

要勾选还看自己的习惯了,没有自定义键盘什么的不弹出也不会影响真机测试。


3、移动图片位置时,不能直接修改“对象”的“结构体属性”的“成员”

修改对象的结构体成员

在OC中,不允许直接修改“对象”的“结构体属性”的“成员”,但是允许修改“对象”的“结构体属性”

修改结构体属性的成员方法如下:

(1)使用临时变量记录对象的结构体属性

(2) 修改临时变量的属性

(3)将临时变量重新设置给对象的结构体属性

- (IBAction)upBtnClick:(id)sender {
    NSLog(@"up");
    //OC中不允许直接修改“对象”结构体属性的成员
//    self.iconBtn.frame.origin.y -= 20.0;//报错
    //但是可以修改结构体属性的成员
    //修改“对象”结构体属性的成员有3个步骤
    //1.取出frame
    CGRect frame = self.iconBtn.frame;
    //2.修改结构体属性的成员
    frame.origin.y -= 20;
    //3.重新为对象的结构体属性赋值
    self.iconBtn.frame = frame;
    
}


4、解决魔法数字的方法

//magic number魔法数字,是指在代码中出现的意义不明的数字,不利于代码的可读性
//宏定义,解决魔法数字
#define kMovingDelta 20.0f
//使用枚举是解决魔法数字的采用方法。
//枚举类型本质上就是就是整数,定义的时候,如果只指定了第一个数字,后续的数值就会依次递增加一。
typedef enum{
    kMOvingDirUp = 10,
    kMOvingDirBottom,
    kMOvingDirLeft,
    kMOvingDirRight
} kMOvingDir;


5、控件移动,放大缩小,旋转和动画

移动用CGAffineTransform

放大缩小用CGAffineTransformScale

旋转用CGAffineTransformRotate

动画:

    //首尾式动画
    //准备开始一个动画
    [UIView beginAnimations:nil context:nil];
    //设置动画时间
    [UIView setAnimationDuration:5];
    //动画内容
    self.iconBtn.bounds = bounds;
    //提交动画
    [UIView commitAnimations];

6、用代码实现一个button控件

@interface ViewController ()
//weak:弱引用,不决定对象的存亡。即使一个对象被持有无数个弱引用,只要没有强引用指向它,那么还是会被清除
@property (weak, nonatomic) IBOutlet UIButton *iconBtn;

//assign一般用来处理基本数据(不改变引用计数)
@property (assign,nonatomic) CGFloat delta;
@end

@implementation ViewController

-(void)viewDidLoad{
<p class="p2"><span class="s3">    [</span><span class="s4">super</span><span class="s3"> </span><span class="s1">viewDidLoad</span><span class="s3">];</span><span style="font-family: Arial, Helvetica, sans-serif;"> </span><span class="s1" style="font-family: Arial, Helvetica, sans-serif;">   //</span><span class="s2" style="font-family: Arial, Helvetica, sans-serif;">务必要调用</span><span class="s1" style="font-family: Arial, Helvetica, sans-serif;">super</span><span class="s2" style="font-family: Arial, Helvetica, sans-serif;">加载</span></p>    //用代码实现加载一个button的控件
    //创建按钮,默认是custom类型
    UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(100, 300, 100, 100)];
    self.iconBtn = btn;//建立联系
    //设置背景图片
    [btn setBackgroundImage:[UIImage imageNamed:@"btn_01"] forState:UIControlStateNormal];
    [btn setBackgroundImage:[UIImage imageNamed:@"btn_02"] forState:UIControlStateHighlighted];
    //设置文字
    [btn setTitle:@"点我呀" forState:UIControlStateNormal];
    [btn setTitle:@"干嘛呀" forState:UIControlStateHighlighted];
    //设置文字颜色
    
    [btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
    
    [btn setTitleColor:[UIColor blueColor] forState:UIControlStateHighlighted];
    
    //设置文本垂直对齐方式
    btn.contentVerticalAlignment = UIControlContentVerticalAlignmentBottom;
    
    //显示控件
    [self.view addSubview:btn];
}
@end


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值