标签: uiview

iPhone SDK:loadView和viewDidLoad有什么区别?

在iPhone应用程序中使用视图和视图控制器时,任何人都可以解释loadView和viewDidLoad之间的区别吗?

我个人的背景是,我从代码构建我的所有视图,我不会,也不会使用Interface Builder,如果这有任何区别.

我发现通常当我将初始化代码添加到loadView时,我最终会得到一个无限的堆栈跟踪,所以我通常在viewDidLoad中完成所有的子视图构建...但是每次执行时我都不清楚它,并且什么是更适合放置init代码的地方.什么是完美的,是一个简单的初始化调用图.

谢谢!

iphone objective-c uiview ios

136
推荐指数
4
解决办法
6万
查看次数

如何拍摄UIView的屏幕截图?

我想知道我的iPhone应用程序如何利用特定的屏幕截图UIView作为UIImage.

我试过这段代码,但我得到的只是一张空白图片.

UIGraphicsBeginImageContext(CGSizeMake(320,480));
CGContextRef context = UIGraphicsGetCurrentContext();
[myUIView.layer drawInContext:context];
UIImage *screenShot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Run Code Online (Sandbox Code Playgroud)

myUIView尺寸为320x480,并且有一些子视图.这样做的正确方法是什么?

screenshot objective-c uiview ios

131
推荐指数
9
解决办法
10万
查看次数

鉴于一个观点,我如何获得它的viewController?

我有一个指针UIView.我如何访问它UIViewController[self superview]是另一个UIView,但不是UIViewController,对吧?

iphone debugging uiviewcontroller uiview ios

129
推荐指数
6
解决办法
11万
查看次数

如何绘制一个只是一个圈子的自定义UIView - iPhone应用程序

我将如何绘制一个自定义的UIView,它实际上只是一个球(2D圆圈)?我会覆盖drawRect方法吗?有人能告诉我绘制蓝色圆圈的代码吗?

此外,在类本身内更改该视图的框架是否可以?或者我是否需要从不同的班级更改框架?

(只是试图设置一个球弹跳)

iphone uiview ipad ios

128
推荐指数
7
解决办法
14万
查看次数

更改我的CALayer的anchorPoint会移动视图

我想改变anchorPoint,但保持视图在同一个地方.我试过NSLog-ing分词self.layer.positionself.center他们都保持不变,无论更改anchorPoint的.然而我的观点却在变化

关于如何做到这一点的任何提示?

self.layer.anchorPoint = CGPointMake(0.5, 0.5);
NSLog(@"center point: %f %f", self.layer.position.x, self.layer.position.y);
self.layer.anchorPoint = CGPointMake(1, 1);
NSLog(@"center point: %f %f", self.layer.position.x, self.layer.position.y);
Run Code Online (Sandbox Code Playgroud)

输出是:

2009-12-27 20:43:24.161 Type[11289:207] center point: 272.500000 242.500000
2009-12-27 20:43:24.162 Type[11289:207] center point: 272.500000 242.500000
Run Code Online (Sandbox Code Playgroud)

iphone cocoa cocoa-touch uiview

127
推荐指数
7
解决办法
7万
查看次数

理解convertRect:toView:,convertRect:FromView:,convertPoint:toView:和convertPoint:fromView:methods

我试图了解这些方法的功能.你能给我一个简单的用例来理解他们的语义吗?

从文档中,例如,convertPoint:fromView:方法描述如下:

将点从给定视图的坐标系转换为接收器的坐标系.

什么是坐标系是什么意思?接收器怎么样?

例如,使用convertPoint:fromView是否有意义:如下所示?

CGPoint p = [view1 convertPoint:view1.center fromView:view1];
Run Code Online (Sandbox Code Playgroud)

使用NSLog实用程序,我已经验证了p值与view1的中心重合.

先感谢您.

编辑:对于那些感兴趣的人,我创建了一个简单的代码片段来理解这些方法.

UIView* view1 = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 150, 200)];
view1.backgroundColor = [UIColor redColor];

NSLog(@"view1 frame: %@", NSStringFromCGRect(view1.frame));        
NSLog(@"view1 center: %@", NSStringFromCGPoint(view1.center));   

CGPoint originInWindowCoordinates = [self.window convertPoint:view1.bounds.origin fromView:view1];        
NSLog(@"convertPoint:fromView: %@", NSStringFromCGPoint(originInWindowCoordinates));

CGPoint originInView1Coordinates = [self.window convertPoint:view1.frame.origin toView:view1];        
NSLog(@"convertPoint:toView: %@", NSStringFromCGPoint(originInView1Coordinates));
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,self.window都是接收者.但是有区别.在第一种情况下,convertPoint参数以view1坐标表示.输出如下:

convertPoint:fromView:{100,100}

而在第二个中,convertPoint以superview(self.window)坐标表示.输出如下:

convertPoint:toView:{0,0}

layout uiview ios

127
推荐指数
5
解决办法
7万
查看次数

iOS - 通过视图转发所有触摸

我有一个视图叠加在许多其他视图之上.我只是使用过度的方法来检测屏幕上的一些触摸,但除此之外我不希望视图停止下面其他视图的行为,这些是滚动视图等.我怎样才能转发所有的触摸通过这个叠加视图?它是UIView的子项.

events touch uiview

125
推荐指数
10
解决办法
6万
查看次数

iOS:如何为新的自动布局约束(高度)设置动画

我以前从未使用过autolayout约束.我有一个小的新应用程序我正在研究并注意到NIB的观点默认为自动布局.所以,我想我会抓住机会它一起努力,并试图找出Apple的目标.

第一个挑战:

我需要调整MKMapView的大小,我想将它设置为新位置.如果我按照以前的方式这样做:

[UIView animateWithDuration:1.2f
     animations:^{
         CGRect theFrame = worldView.frame;
         CGRect newFrame = CGRectMake(theFrame.origin.x, theFrame.origin.y, theFrame.size.width, theFrame.size.height - 170);
         worldView.frame = newFrame;
}];
Run Code Online (Sandbox Code Playgroud)

...然后,只要兄弟视图得到更新,MKMapView就会"快速"回到原来的高度(在我的情况下,正在更新UISegmentedControl的标题[myUISegmentedControl setTitle:newTitle forSegmentAtIndex:0]).

所以,我觉得我想要做的是从等于父视图的HIGHT到可相对于UISegmentedControl的顶部,它改变的MKMapView的限制覆盖:V:[MKMapView]-(16)-[UISegmentedControl]

我想要的是缩短MKMapView高度,以便显示地图视图下方的一些控件.为此,我认为我需要将约束从固定的全尺寸视图更改为底部被约束到UISegmentedControl顶部的约束...并且我希望它在视图缩小到新大小时进行动画处理.

怎么会这样呢?

编辑 - 虽然视图底部立即向上移动170,但此动画不是动画:

    [UIView animateWithDuration:1.2f
         animations:^{
             self.nibMapViewConstraint.constant = -170;

    }];
Run Code Online (Sandbox Code Playgroud)

并且nibMapViewConstraint在IB中连接到底部垂直空间约束.

uiview ios autolayout nslayoutconstraint

122
推荐指数
3
解决办法
8万
查看次数

使用CALayers的圆形UIView - 只有一些角落 - 如何?

在我的应用程序中 - 有四个按钮,命名如下:

  • 左上方
  • 左下方
  • 右上
  • 下 - 右

按钮上方有一个图像视图(或UIView).

现在,假设用户点击 - 左上角按钮.上面的图像/视图应该在该特定角落四舍五入.

我在为UIView应用圆角方面遇到了一些困难.

现在我使用以下代码将圆角应用于每个视图:

    // imgVUserImg is a image view on IB.
    imgVUserImg.image=[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"any Url Here"];
    CALayer *l = [imgVUserImg layer];
    [l setMasksToBounds:YES];
    [l setCornerRadius:5.0];  
    [l setBorderWidth:2.0];
    [l setBorderColor:[[UIColor darkGrayColor] CGColor]];
Run Code Online (Sandbox Code Playgroud)

上面的代码将圆度应用于所提供视图的每个角.相反,我只想将圆度应用于选定的角落,如 - 顶部/顶部+左侧/底部+右侧等.

可能吗?怎么样?

iphone xcode objective-c calayer uiview

119
推荐指数
7
解决办法
6万
查看次数

从故事板中的外部xib文件加载视图

我想在故事板中使用多个viewcontrollers中的视图.因此,我考虑在外部xib中设计视图,以便在每个viewcontroller中反映更改.但是如何从故事板中的外部xib加载视图呢?它甚至可能吗?如果不是这样的话,还有哪些其他选择可以适应这种情况呢?

storyboard xib uiview ios

115
推荐指数
7
解决办法
10万
查看次数