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


    在ViewController中添加

    1. //
    2. // ViewController.m
    3. // iosstudy2024
    4. //
    5. // Created by figo on 2024/8/5.
    6. //
    7. #import "ViewController.h"
    8. @interface ViewController ()
    9. @property (weak, nonatomic) IBOutlet UIButton *xigua;
    10. - (IBAction)xigua:(id)sender;
    11. @end
    12. @implementation ViewController
    13. - (void)viewDidLoad {
    14. [super viewDidLoad];
    15. // Do any additional setup after loading the view.
    16. //如何动态添加控件
    17. //1.new 一个按钮
    18. UIButton *uibutton=[[UIButton alloc]init];
    19. //2.设置不同状态下标题及颜色
    20. [uibutton setTitle:@"hello,world" forState:UIControlStateNormal];
    21. [uibutton setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
    22. [uibutton setTitle:@"hello,china" forState:UIControlStateHighlighted];
    23. [uibutton setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted];
    24. //3.设置不同状态下背景图片
    25. UIImage *uiImageNormal=[UIImage imageNamed:@"star"];
    26. [uibutton setBackgroundImage:uiImageNormal forState:UIControlStateNormal];
    27. UIImage *uiImageHignlighted=[UIImage imageNamed:@"diamond"];
    28. [uibutton setBackgroundImage:uiImageHignlighted forState:UIControlStateHighlighted];
    29. //4.设置坐标及长和宽
    30. CGRect rect=CGRectMake(10, 20, 100, 100);
    31. uibutton.frame=rect;
    32. //5.添加按钮事件
    33. [uibutton addTarget:self action:@selector(customClick) forControlEvents:UIControlEventTouchUpInside];
    34. //6.添加到父视图
    35. [self.view addSubview:uibutton];
    36. }
    37. - (void) customClick{
    38. NSLog(@"动态添加事件");
    39. }
    40. - (IBAction)xigua:(id)sender {
    41. NSLog(@"这里是西瓜!");
    42. //1.通过frame设置位置(+是向右和向下)和大小
    43. /** */
    44. // CGRect originFrame=_xigua.frame;
    45. // originFrame.size.width+=10;
    46. // originFrame.size.height+=10;
    47. // originFrame.origin.x+=10;
    48. // originFrame.origin.y+=10;
    49. // _xigua.frame=originFrame;
    50. //2.通过center设置位置,center是中心点
    51. /** */
    52. CGPoint centerPoint=_xigua.center;
    53. centerPoint.x+=100;
    54. centerPoint.y+=100;
    55. //方法一:头尾式,执行动画
    56. //1).开启动画,会平滑一点
    57. // [UIView beginAnimations:nil context:nil];
    58. // //2).设置动画执行时间,单位秒
    59. // [UIView setAnimationDuration:1];
    60. // _xigua.center=centerPoint;
    61. //3).提交动画 注释后,动画也可以执行
    62. // [UIView commitAnimations];
    63. //方法二:block方式执行动画
    64. [UIView animateWithDuration:1 animations:^{
    65. _xigua.center=centerPoint;
    66. }];
    67. //3.通过bounds设置位置(+是向左和向上)和大小
    68. /**
    69. CGRect originBounds=_xigua.bounds;
    70. originBounds.size.width+=10;
    71. originBounds.size.height+=10;
    72. originBounds.origin.x+=10;
    73. originBounds.origin.y+=10;
    74. _xigua.bounds=originBounds;
    75. */
    76. }
    77. @end

  • 相关阅读:
    Go语言开发小技巧&易错点100例(九)
    web前端学习笔记二
    C++11智能指针unique_ptr剖析
    [Python人工智能] 四十二.命名实体识别 (3)基于Bert+BiLSTM-CRF的中文实体识别万字详解(异常解决中)
    《向量数据库指南》——完善产品拼图,GBASE南大通用发布向量数据库
    腾讯云国际站-阿里云OSS如何迁移到腾讯云COS?腾讯云cos迁移教程
    浅述在线播放URL机制
    卡方分布的期望值和方差
    《进阶篇第9章》学习vuex知识点后练习:求和案例_纯vue版代码
    详解欧拉计划第188题:数的超幂
  • 原文地址:https://blog.csdn.net/figo0423/article/details/140965977