在ViewController中添加
objectivec
//
// ViewController.m
// iosstudy2024
//
// Created by figo on 2024/8/5.
//
#import "ViewController.h"
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIButton *xigua;
- (IBAction)xigua:(id)sender;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
//如何动态添加控件
//1.new 一个按钮
UIButton *uibutton=[[UIButton alloc]init];
//2.设置不同状态下标题及颜色
[uibutton setTitle:@"hello,world" forState:UIControlStateNormal];
[uibutton setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
[uibutton setTitle:@"hello,china" forState:UIControlStateHighlighted];
[uibutton setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted];
//3.设置不同状态下背景图片
UIImage *uiImageNormal=[UIImage imageNamed:@"star"];
[uibutton setBackgroundImage:uiImageNormal forState:UIControlStateNormal];
UIImage *uiImageHignlighted=[UIImage imageNamed:@"diamond"];
[uibutton setBackgroundImage:uiImageHignlighted forState:UIControlStateHighlighted];
//4.设置坐标及长和宽
CGRect rect=CGRectMake(10, 20, 100, 100);
uibutton.frame=rect;
//5.添加按钮事件
[uibutton addTarget:self action:@selector(customClick) forControlEvents:UIControlEventTouchUpInside];
//6.添加到父视图
[self.view addSubview:uibutton];
}
- (void) customClick{
NSLog(@"动态添加事件");
}
- (IBAction)xigua:(id)sender {
NSLog(@"这里是西瓜!");
//1.通过frame设置位置(+是向右和向下)和大小
/** */
// CGRect originFrame=_xigua.frame;
// originFrame.size.width+=10;
// originFrame.size.height+=10;
// originFrame.origin.x+=10;
// originFrame.origin.y+=10;
// _xigua.frame=originFrame;
//2.通过center设置位置,center是中心点
/** */
CGPoint centerPoint=_xigua.center;
centerPoint.x+=100;
centerPoint.y+=100;
//方法一:头尾式,执行动画
//1).开启动画,会平滑一点
// [UIView beginAnimations:nil context:nil];
// //2).设置动画执行时间,单位秒
// [UIView setAnimationDuration:1];
// _xigua.center=centerPoint;
//3).提交动画 注释后,动画也可以执行
// [UIView commitAnimations];
//方法二:block方式执行动画
[UIView animateWithDuration:1 animations:^{
_xigua.center=centerPoint;
}];
//3.通过bounds设置位置(+是向左和向上)和大小
/**
CGRect originBounds=_xigua.bounds;
originBounds.size.width+=10;
originBounds.size.height+=10;
originBounds.origin.x+=10;
originBounds.origin.y+=10;
_xigua.bounds=originBounds;
*/
}
@end