UI开发----UIController及其子类

本文介绍了iOS开发中几种常用UI控件的具体实现方法,包括UIImageView的动画效果设置、UISlider的自定义样式调整及事件响应,以及UISegmentedControl的初始化配置等。

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

//  Created By 郭仔    2015年04月17日23:30:33

今天搞了一晚上的设计模式,本来用ios启动流程的初始代理UIApplicationDeleg来设置页面转换的,却越来越麻烦,还是用了简单的笨方法实现了,明天把这个内容写下来。

==================

没什么时间了,直接上代码:

==================

UIImageView:

    // =================UIImageView====================================
    
    UIImageView * imageView = [[UIImageView alloc]initWithFrame:CGRectMake(100, 200, 50, 50)];
    imageView.image = [UIImage imageNamed:@"3"];
    [imageView.layer setShadowColor:[UIColor greenColor].CGColor];
    imageView.layer.shadowOffset = CGSizeMake(5, 5);
    // 设置不透明度
    imageView.layer.shadowOpacity = 0.5;
    NSMutableArray * images = [NSMutableArray array];
    for (int i = 7; i < 13; i ++) {
        NSString * name = [NSString stringWithFormat:@"%d.png",i];
        UIImage * img = [UIImage imageNamed:name];
        [images addObject:img];
    
    }
    imageView.animationImages = images;
    
    // 设置动画间隔,必须在startAnimating之前设置间隔
    imageView.animationDuration = 1;
    [imageView startAnimating];

    
    
    
    
    //imageView.contentMode = UIViewContentModeScaleAspectFill;
   // imageView.contentMode = UIViewContentModeTop;
    // 25把我自己的图片变成圆形,这里的25代表的是半径
    imageView.layer.cornerRadius = 25;
    [imageView.layer setMasksToBounds:YES];
    
    [self.window addSubview:imageView];
    [imageView release];
==========================

UISlider:

#pragma mark - UISlider
    UISlider * slider = [[UISlider alloc]initWithFrame:CGRectMake(50, 200, 200, 50)];
    slider.minimumValue = 100;
    slider.maximumValue = 200;
    // 设置让slider倒立(即竖直方向)
    // slider.transform = CGAffineTransformMakeRotation(M_PI_2);
    // 设置划过的区域的颜色
    slider.minimumTrackTintColor = [UIColor blackColor];
   // slider.tintColor = [UIColor redColor];
    // 设置未划过区域的颜色
    slider.maximumTrackTintColor = [UIColor redColor];
    UIImage * img = [UIImage imageNamed:@"3"];
    [slider setThumbImage:img forState:UIControlStateNormal];
    slider.thumbTintColor = [UIColor blueColor];
    
    
    [slider addTarget:self action:@selector(sliderChanged:) forControlEvents:UIControlEventValueChanged];
    [self.view addSubview:slider];
    [slider release];
=====================================

UISegment:

#pragma mark - UISegmentedControl
    NSArray * items = [NSArray arrayWithObjects:@"首页",@"列表",@"收藏", nil];
    UISegmentedControl * seg = [[UISegmentedControl alloc]initWithItems:items];
    seg.frame = CGRectMake(30, 50, 250, 30);
    seg.tintColor = [UIColor blackColor];
    [seg insertSegmentWithTitle:@"我的页面" atIndex:1 animated:YES];
    seg.selectedSegmentIndex = 2;
    [seg addTarget:self action:@selector(segClicked:) forControlEvents:UIControlEventValueChanged];
    [self.view addSubview:seg];
    [seg release];
=====================================

UIControl:

UIControl的核⼼心功能:
为控制控件通过addTarget: action: forControlEvents: ⽅方法来添加事 件。
通过removeTarget: action: forControlEvents: 来移除事件。

=====================================

小结:


UIControl是所有控制类控件的基类。 UISlider是可以响应滑动事件的控件 UISegmentedControl是可以实现单选的控件 UIImageView除了能显⽰示单张图⽚片,还能处理⼀一组图⽚片的播放

=====================================

这次太晚了,到家就要12点了~~~~~~~~~~~~






### 如何绘制三层架构的UML类图 在软件开发中,三层架构通常由表现层(Presentation Layer)、业务逻辑层(Business Logic Layer)和数据访问层(Data Access Layer)组成。以下是关于如何使用 UML 类图来表示这种结构的方法以及推荐使用的工具。 #### 使用 UML 表示三层架构 1. **定义每一层的主要职责** - 表现层负责处理用户界面交互。 - 业务逻辑层封装核心功能逻辑。 - 数据访问层管理数据库操作或外部服务调用。 2. **创建具体的类及其关系** 每一层可以包含多个具体类,并通过不同的关系连接起来。例如: - 表现层可以通过依赖关系与业务逻辑层通信。 - 业务逻辑层可以通过关联或聚合关系与数据访问层协作[^2]。 3. **设计类的具体形式** 根据引用内容可知,在 UML 中,类可以用矩形框表示,分为三个部分:类名、属性列表和方法列表[^4]。如果某个类是抽象类,则其名称应以斜体显示;对于接口,可以在顶部加上 `<interface>` 标记[^4]。 4. **展示层次间的关系** 层次间的常见关系包括但不限于以下几种: - **依赖关系**:当一个模块需要另一个模块的服务时建立此关系。它表现为一条带箭头的虚线指向被依赖方[^3]。 - **关联关系**:用于表达两个实体之间存在长期稳定联系的情况。一般画成带有方向性的直线[^2]。 - **泛化关系**:体现继承机制下的父子级联模式,即子类扩展父类的功能集。图形上呈现为空心三角加实线链接至基类节点[^4]。 5. **实例演示** 下面给出一段简单的伪代码用来模拟三层架构下各组件之间的相互作用: ```java // Presentation Layer (UI Controller) public class UIController { private BusinessService businessService; public void execute() { String result = businessService.performAction(); System.out.println(result); } } // Business Logic Layer (Core Service Implementation) abstract class BaseService {} class BusinessService extends BaseService { DataAccessLayer dataAccessLayer; @Override public String performAction() { return this.dataAccessLayer.fetchData(); // Delegating task to DAL. } } // Data Access Layer (Database Handler) interface IDataAccess {} class DataAccessLayer implements IDataAccess{ public String fetchData(){ return "Sample Data Retrieved"; } } ``` 以上片段展示了典型的分层设计方案——`UIController` 对 `BusinessService` 存在一个显式的依赖项,而后者又持有对 `DataAccessLayer` 的引用从而完成整个流程链路闭合[^3]。 #### 工具建议 为了更高效地构建此类模型,可以选择一些专业的建模工具辅助工作流执行过程如下列举几个选项供参考考虑采用其中之一即可满足需求: - **StarUML**: 提供直观易懂的操作界面支持快速生成多种标准格式文档同时也允许导出源码框架便于后续迭代维护阶段继续沿用既定模板样式[^1]. - **Visual Paradigm**: 功能全面覆盖范围广除了基本绘图外还具备版本控制集成能力适合团队合作场景应用场合广泛适应性强效果显著优于同类产品平均水平之上. - **Enterprise Architect by Sparx Systems**: 高端解决方案适用于大型复杂系统的全生命周期管理不仅限于单纯的图表制作还包括需求分析测试计划等多个维度全方位保障项目成功落地实施. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值