ios如何动态添加控件及动画

在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
相关推荐
大熊猫侯佩6 小时前
黑衣人档案:用 Apple Foundation Models + SwiftUI 打造 AI 聊天机器人全攻略
ios·swiftui·ai编程
大熊猫侯佩6 小时前
侠客行・iOS 26 Liquid Glass TabBar 破阵记
ios·swiftui·swift
2501_916007478 小时前
手机使用过的痕迹能查到吗?完整查询指南与步骤
android·ios·智能手机·小程序·uni-app·iphone·webview
從南走到北9 小时前
JAVA国际版同城外卖跑腿团购到店跑腿多合一APP系统源码支持Android+IOS+H5
android·java·ios·微信小程序·小程序
alengan11 小时前
苹果企业签名流程
ios·iphone
Digitally20 小时前
如何在Mac上同步iPhone短信
macos·ios·iphone
2501_915106321 天前
App HTTPS 抓包 工程化排查与工具组合实战
网络协议·ios·小程序·https·uni-app·php·iphone
2501_916008891 天前
金融类 App 加密加固方法,多工具组合的工程化实践(金融级别/IPA 加固/无源码落地/Ipa Guard + 流水线)
android·ios·金融·小程序·uni-app·iphone·webview
2501_915921431 天前
Fastlane 结合 开心上架(Appuploader)命令行版本实现跨平台上传发布 iOS App 免 Mac 自动化上架实战全解析
android·macos·ios·小程序·uni-app·自动化·iphone
游戏开发爱好者81 天前
iOS 上架要求全解析,App Store 审核标准、开发者准备事项与开心上架(Appuploader)跨平台免 Mac 实战指南
android·macos·ios·小程序·uni-app·iphone·webview