IOS UI 2013-8-9学习笔录

简介: 1.设置控件属性: 按住鼠标右键,然后拖放到controller.h,如果设置成 @property (retain, nonatomic) IBOutlet UILabel *label; @property (retain, nonatomic)...

1.设置控件属性:

按住鼠标右键,然后拖放到controller.h,如果设置成

@property (retainnonatomicIBOutlet UILabel *label;

@property (retainnonatomicIBOutlet UIButton *leftButton;

就是该ViewController的属性,可以在.m文件中使用self.label获取到该控件;

例如:

[self.leftButtonsetTitle:@"LOVE"forState:UIControlStateHighlighted];

就是点击按住按钮不放,然后按钮中文本会编程LOVE,但松手之后还会复原。

2.设置控件方法

按住鼠标右键,然后拖放到controller.h,如果选择IBAction的话就设置的是方法属性

- (IBAction)leftClick:(id)sender;

- (IBAction)rightClick:(id)sender;

可以在.m文件中在自动生成的点击方法里面添加逻辑代码:

例如:

- (IBAction)rightClick:(id)sender {

    self.label.text =@"right";

}

3.处理两个按钮同时拥有同一个事件,怎么区分?

如果两个按钮同时指向拥有一个同一个click方法,但我们要知道是哪个按钮点击了该方法,那我们就要通过方法的click:(id)sender这个参数来识别是哪个按钮触发了该事件,最好是给每一个按钮设置一个tag来唯一标识每个按钮,然后在.m文件中通过宏定义来设置这些tag

例如:

#define LEFT_BUTTON_Tag 1
#define RIGHT_BUTTON_Tag 2
-(IBAction)click:(id)sender
{
	UIButton *button = (UIButton *)sender;
	if(button.tag == LEFT_Button_Tag)
	{
		self.Label.text = @"Left click";
	}
}

常用函数:

-(void)removeFromSuperview;

-(void)insertSubview:(UIView *)view atIndex:(NSInteger)index;

-(void)exchangeSubviewAtIndex:(NSInterger)index1 withSubviewAtIndex:(NSInteger)index2;

-(void)addSubview:(UIView *)view;

-(UIView *)viewWithTag:(NSInteger)tag;


4.通过代码重新设置Lable大小:

CGRect frame = CGRectMake(100,100,200,100);

//测试之前先将Use Autolayout的功能不选,让我们自己来对label大小适合文字布局

//求字体大小

//在原来的基础上添加

self.label.text = str;

//求字体的长度大小,隐藏在CGSize的分类方法中

CGSize size = [str sizeWithFont:self.label.font];

//自定义长方形大小

CGRect frame = CGRectMake(self.label.frame.origin.x,self.label.frame.origin.y,size.width,self.label.frame.size.height);

//通过自己设置的frame大小来改变当前label长度的大小

self.lable.frame = frame;


额外方法:

CGSize labelSize = [s sizeWithFont:font constrainedToSize:size lineBreakMode:UILineBreakModeWordWrap];

意思就是:把字符串s当成font字体时候,在区间size内使用这行的情况下那么s应该有的大小,也就是s在最大size范围内的宽和高


将一个view添加到另外一个view中

[self.view addSubview:label2];//添加了之后计数器加1,要释放

[label2 release];


相关文章
|
iOS开发
iOS开发UI篇—iPad开发中得modal介绍
iOS开发UI篇—iPad开发中得modal介绍 一、简单介绍   说明1:   在iPhone开发中,Modal是一种常见的切换控制器的方式     默认是从屏幕底部往上弹出,直到完全盖住后面的内容为止 说明2:   在iPad开发中,Modal的使用频率也是非常高的   对...
773 0
|
iOS开发
iOS开发UI篇—Modal简单介绍
iOS开发UI篇—Modal简单介绍 一、简单介绍 除了push之外,还有另外一种控制器的切换方式,那就是Modal 任何控制器都能通过Modal的形式展⽰出来 Modal的默认效果:新控制器从屏幕的最底部往上钻,直到盖住之前的控制器为⽌ 二、代码说明 新建一个项目,在Application的代理中添加window和控制器。
897 0
|
5天前
|
Unix 调度 Swift
苹果iOS新手开发之Swift 中获取时间戳有哪些方式?
在Swift中获取时间戳有四种常见方式:1) 使用`Date`对象获取秒级或毫秒级时间戳;2) 通过`CFAbsoluteTimeGetCurrent`获取Core Foundation的秒数,需转换为Unix时间戳;3) 使用`DispatchTime.now()`获取纳秒级精度的调度时间点;4) `ProcessInfo`提供设备启动后的秒数,不表示绝对时间。不同方法适用于不同的精度和场景需求。
17 3
|
4天前
|
Swift iOS开发 Kotlin
苹果iOS新手开发之Swift中实现类似Kotlin的作用域函数
Swift可通过扩展实现类似Kotlin作用域函数效果。如自定义`let`, `run`, `with`, `apply`, `also`,增强代码可读性和简洁性。虽无直接内置支持,但利用Swift特性可达成相似功能。
23 7
|
1天前
|
移动开发 前端开发 iOS开发
探索iOS开发的未来:SwiftUI与Combine的融合
随着苹果公司不断推进其操作系统的更新,iOS开发领域也迎来了诸多变革。在这篇文章中,我们将深入探讨SwiftUI和Combine这两个强大的框架,它们如何共同塑造着iOS应用开发的未来趋势。通过具体实例和数据支持,本文旨在揭示这些技术如何简化开发者的工作流,提升用户界面构建的效率,以及加强应用的响应性和性能表现。我们还将提出一个开放性问题,邀请读者思考并探索这些技术在未来可能带来的进一步影响。 【7月更文挑战第26天】
9 2
|
3天前
|
API 数据处理 开发工具
探索iOS开发的未来:SwiftUI和Combine的融合
【7月更文挑战第23天】随着Apple不断推动其软件开发工具的创新,SwiftUI和Combine框架的出现标志着iOS开发进入了一个新的时代。本文将深入探讨这两个框架如何简化界面设计和事件处理,以及它们如何共同为开发者提供一个更加高效、声明式的编程模型。我们将通过实际示例来展示如何利用SwiftUI构建用户界面,并使用Combine处理异步事件和状态管理。文章还将预测这些技术如何塑造iOS应用开发的未来趋势。
|
2天前
|
调度 Swift Android开发
苹果iOS新手开发之Swift中的并发任务和消息机制
Swift的消息机制类似Android的Handler,实现任务调度有三种方式: 1. **Grand Central Dispatch (GCD)**:使用`DispatchQueue`在主线程或后台线程执行任务。 2. **OperationQueue**:提供高级接口管理`Operation`对象。 3. **RunLoop**:处理事件如输入源、计时器,类似Android的`Looper`和`Handler`。 **示例**: - GCD:在不同线程执行代码块。 - OperationQueue:创建操作并执行。 - RunLoop:用Timer添加到RunLoop中。
12 2