我是新来编程的iPhone,我想知道:如何扩展是各种控制? 让我们以按钮为例:
- 我可以改变背景图片?
- 我可以让它长得更大时,我按下了吗?
- 我可以改变字体?
- 我可以使用自定义字体?
- 我可以用一个按钮图形来代替文字?
我是新来编程的iPhone,我想知道:如何扩展是各种控制? 让我们以按钮为例:
在一般情况下,是你所有的问题。 你也可以继承的各种UI *类组成可可触摸控制,就像任何其他类,并在适当的方法添加自己的自定义功能。 唯一棘手的部分是找出确切位置在哪里你的代码应该去。
让我们来看看你的UIButton实例,并通过你想用它做什么走。
背景图
该UIButton的类已经有一个方法setBackgroundImage:forState:
让你改变的UIImage按钮时显示它在几个州,如正常,高亮,残疾人之一,依此类推。
例如,为了改变图像按钮显示为正常背景为“backgroundImage.png”,这是在应用程序的包中的图像文件:
//Presuming you have some UIButton *button:
UIImage *bgImage = [UIImage imageNamed:@"backgroundImage.png"];
[button setBackgroundImage:bgImage forState:UIControlStateNormal];
越来越大
可以更改按钮的frame
通过添加在管理按钮视图控制器.m文件这样做,然后加入该方法作为用于在按钮上的控制事件的动作的方法(一种遗传从UIView的属性)。
比方说,你想要的按钮的规模扩大一倍。 在viewDidLoad:
或类似的地方,添加以下代码:
[button addTarget:self action:@selector(growButton)
forControlEvents:UIControlEventTouchDown];
然后,创建一个方法growButton
用下面的代码:
- (void)growButton {
CGRect currentFrame = button.frame;
CGRect newFrame = CGRectMake(currentFrame.origin.x - currentFrame.size.width / 2,
currentFrame.origin.y - currentFrame.size.height / 2,
currentFrame.size.width * 2,
currentFrame.size.height * 2);
button.frame = newFrame;
}
同时保持其中心同本加倍您的按钮的大小。 (小心你的按钮并不在成长,当你这样做你的观点的边缘。)
更改字体
简单地改变font
的UIButton的财产-将其设置为UIFont的新实例,就像这个例子:
button.font = [UIFont systemFontOfSize:16.0];
这改变了按钮的字体到系统的字体大小为16。
自定义字体
这是一个有些棘手的问题,因为我敢肯定你不能加载自己的自定义字体文件,即使你将它们包含在您的应用程序包。 你可以,但是,通过使用UIFont的改变控件的默认字体fontWithName:size:
类方法。 所有字体的名称都可以通过UIFont的familyNames
和fontNamesForFamilyName:
方法。
按钮图形代替文本
这是最简单的五-只是不设置按钮上的文本,而是设置一个背景图片UIControlStateNormal
(见上文)。
是。
1,3,4和5可以在没有代码使用在界面生成器按钮的属性来实现。 改变字体,调出字体面板(命令-T)与所选择的按钮。
使得按钮成长需要增加被点击时,它在代码执行。 你可以把几行这样在您的视图控制器,它应该做的伎俩:
- (void)buttonClicked:(id)sender
{
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration: 0.4];
[sender setFrame:CGRectMake(--,--,--,--)]; //replace with slightly bigger button frame
[UIView commitAnimations];
}