`
热带翎羽
  • 浏览: 63966 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

新建UIView的子类

阅读更多
大致步骤
1) 新建一个UIView的子类(@interface HypnosisView : UIView)
2) 自定义绘图函数:(void) drawRect:(CGRect)rect
  • 确定绘图范围:CGRect bounds=[self bounds]
  • 获得CGContext, CGContextRef context=UIGraphicsGetCurrentContext();
  • 进行绘图操作

3) 将新视图绑定到主窗口
  • 在HypnosisterAppDelegate中添加一个成员变量HypnosisView *view;
  • 确定绘图范围
  • 在didFinishLaunchingWithOptions中增加子视图:[_window addSubview:view];
  • 进行显示 [_window makeKeyAndVisible];

  • 待确定事项:
    1) CGContextStrokePath的功能
    2) makeKeyAndVisible消息的功能

    关键代码如下:
    1) 绑定处理:
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        NSLog(@"didFinishLaunchingWithOptions.");
        
        CGRect drawingArea=[_window bounds];
        view = [[HypnosisView alloc] initWithFrame:drawingArea];
        [view setBackgroundColor:[UIColor yellowColor]];
        [_window addSubview:view];
        
        // Override point for customization after application launch.
        [_window makeKeyAndVisible];
        return YES;
    }
    2) 绘图处理:
    - (void) drawRect:(CGRect)rect
    {
        
        NSLog(@"Entering the drawing function of HyponsisView.");
        //Get the drawing rectangle
        CGRect bounds=[self bounds];
        
        
        //Calculate the references
        CGPoint center;
        center.x=bounds.origin.x+bounds.size.width/2.0;
        center.y=bounds.origin.y+bounds.size.height/2.0;
        
        float radius=hypot(bounds.size.width, bounds.size.height)/2.0;
        
        //Prepare Drawing
        CGContextRef context=UIGraphicsGetCurrentContext();
        CGContextSetLineWidth(context,10);
        [[UIColor greenColor] setStroke];
        
        //Drawing the circles
        for( float r=radius; r>0; r=r-25)
        {
            CGContextAddArc(context, center.x, center.y, r, 0.0, M_PI*2.0,YES);
            CGContextStrokePath(context);
        }
    }


    运行效果:


    • 大小: 59.9 KB
    分享到:
    评论

    相关推荐

      ios 自定义提示框

      1. **创建视图**: 首先,我们需要创建一个新的UIView子类,作为自定义提示框的基础视图。这个视图将包含所有的内容,如标题、消息文本、按钮等。我们可以在Xcode中新建一个Swift或Objective-C文件,并实现UIView的...

      ios-Swift数字时钟.zip

      1. 自定义UIView子类:为了创建数字时钟,我们需要自定义一个UIView子类,例如DigitTimeView。这个类将负责绘制时钟的数字界面,并实时更新时间显示。 2. 时间格式化:Swift中的Date和 DateFormatter 类可以帮助...

      UIScrollView重用

      1. 创建自定义视图类:首先,创建一个继承自 `UIView` 的子类,用于展示滚动内容。 2. 实现数据源代理:设置 `UIScrollView` 的数据源代理方法,如 `- (NSInteger)numberOfPagesInScrollView:(UIScrollView *)...

      从零开始学iOS7开发系列3-我的地盘我做主-Cha191

      在这个例子中,我们创建了一个名为HudView的UIView子类,它用于展示一个简短的动画,让用户知道操作已经被成功执行。这个特定的HudView会在用户点击Done按钮关闭界面时出现,显示文本“Tagged”。 首先,我们修改...

      iPhone开发入门[归纳].pdf

      - 添加自定义视图类:创建一个新的UIView子类,如MyView,以扩展默认界面功能。 - 编写代码:在MyView类中实现显示“Hello, World!”的文字,这通常是在视图加载时完成的,例如在`- (void)drawRect:(CGRect)rect`...

      ios九宫格密码的设定

      1. **创建视图**: 首先,我们需要创建一个自定义的UIView子类,用于显示九宫格。在Xcode中,新建一个Swift文件,例如命名为`NineGridPasswordView`,并继承自UIView。在这个类中,我们将添加9个UIButton作为子视图,...

      ios-FTYCustomSetting.zip

      使用步骤: 1、新建一个控制器(UIViewController)继承FTYBaseSettingController 2、 // 初始化每一个cell的样式 FTYSettingModel Confirmation = [FTYSettingASwitchTypeModel itemWithTitle:@"Friend ...

      swift-WeChatFloatBall一行代码实现高仿微信悬浮球

      这个视图通常是一个圆形,我们可以自定义一个名为`FloatBallView`的UIView子类来实现。在`FloatBallView.swift`文件中,定义这个类并实现其初始化方法: ```swift class FloatBallView: UIView { override init...

      IOS UI 笔记

      在iOS中,所有可见的元素都是`UIView`或其子类。`UIView`代表了屏幕上的一个矩形区域,可以通过多种方式定制其外观和行为。 - **创建视图**: 使用`[UIView alloc] initWithFrame:...`方法来创建一个新的`UIView`...

      Tabbar中间突出Demo

      在Xcode中,新建一个Objective-C或Swift类,继承自UITabBarController。例如,我们可以命名为`CustomTabBarController`。 2. 自定义TabBarItem: 首先,我们需要为每个TabBarItem创建自定义视图。这可以通过实现`...

      StatusBar定制iphone状态栏

      - 在Xcode中,新建一个UIView的子类,如`CustomStatusBarView`,并实现其中的初始化方法。确保视图的高度等于StatusBar的高度(通常为20像素)。 - 在`CustomStatusBarView`中添加所需的子视图,如UILabel或...

      UIViewController Demo源代码

      - 新建一个`UIViewController`子类。 - 创建一个新的nib文件,将File's Owner指向新创建的控制器类。 - 将nib中的`UIViewController`实例连接到File's Owner。 - 设置`UIViewController`的`nibName`属性,使其...

      iOS自定义相机界面(实现自定义裁剪框)

      在Xcode中,新建一个`UIViewController`子类,如`CustomCameraViewController.swift`,并重写其`viewDidLoad`方法,以便设置相机的预览层和裁剪框。 ```swift class CustomCameraViewController: UIViewController ...

      [IOS] Storyboard全解析-第一部分

      自定义Segue可以在UIStoryboardSegue子类中实现,覆盖perform方法来实现特定的过渡效果。 3.4 Auto Layout与Size Classes Auto Layout为UI元素提供了约束,确保它们在不同屏幕尺寸下都能正确显示。Size Classes则...

    Global site tag (gtag.js) - Google Analytics