注意:如果你想查看一个完整的UI组件类层级示意图,请阅读UIKit Framework Reference。
UIControl 使用的是target-action pattern机制,这是一种用于通知用户信息改变的机制。 UIControl 也具有很多的属性来表示当前的控制状态。在这个自定义控件中将使用target-action pattern,所以 UIControl 将担当重要的起始点。
在项目导航中右击CustomSliderExample组然后选择New File…,选择iOS/Source/Cocoa Touch Class模板点击Next。类取名为RangeSlider,在Subclass of中输入 UIControl 并且确保语言选择为Swift。点击下一步然后选择Create以使用默认位置来保存新类。
尽管写代码是件漂亮的事,你可能想看看你的控件在实际屏幕上显示的效果来了解项目的进展!在你写其他代码之前,你可以先将控件添加到view controller中以便我们随时查看控件制作的进展程度。
1、新建一个Empty Application,只选Use Automatic Reference Counting,Use Core Data和Include Unit Tests不选。2、Command+N 新建文件,选Cocoa Touch UIViewController subclass,SubClass of UIViewController,勾选with XIB for user interface(当然你也可以再建)。我这输的名字是MainViewController,最终生成MainViewController.h MainViewController.m MainViewController.xib三个文件。
3、打开(前缀)AppDelegate.h,代码如下:
[objc] view plaincopy
#import <UIKit/UIKit.h>
#import "MainViewController.h"
@interface BIDAppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window
@property (strong,nonatomic) MainViewController * controller
@end
AppDelegate.m,修改(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法:
[objc] view plaincopy
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]
// Override point for customization after application launch.
self.controller= [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil]
UIView *mainView=self.controller.view
CGRect mainViewFrame=mainView.frame
mainViewFrame.origin.y+=[UIApplication sharedApplication].statusBarFrame.size.height
//将y座标移到状态栏下
mainView.frame=mainViewFrame
[self.window addSubview:mainView]
//载入
self.window.backgroundColor = [UIColor whiteColor]
[self.window makeKeyAndVisible]
return YES
}
4、随便在MainViewController.xib中添加个控件,运行测试。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)