是否有内置的方式从a UIView到它UIViewController?我知道你可以从UIViewController它UIView通过它,[self view]但我想知道是否有反向参考?
任何人都可以告诉我如何在iOS 10中的新地图应用程序中模仿底页?
在Android中,您可以使用BottomSheet模仿此行为的模式,但我找不到类似iOS的内容.
这是一个带有内容插入的简单滚动视图,以便搜索栏位于底部吗?
我对iOS编程很新,所以如果有人可以帮助我创建这个布局,那将非常感激.
这就是我所说的"底页":
我正在研究一些基于UIView的自定义输入控件,我正在尝试确定设置视图的正确做法.当一个UIViewController的工作,这是相当简单的使用loadView和相关viewWill,viewDid方法,但是继承一个UIView的时候,我有最接近methosds是`awakeFromNib,drawRect和layoutSubviews.(我正在考虑设置和拆卸回调.)在我的情况下,我正在设置框架和内部视图layoutSubviews,但我没有在屏幕上看到任何内容.
确保我的视图具有我想要的正确高度和宽度的最佳方法是什么?(无论我是否使用autolayout,我的问题都适用,尽管可能有两个答案.)什么是正确的"最佳实践"?
虽然大多数苹果文档编写得很好,但我认为" iOS事件处理指南 "是一个例外.我很难清楚地了解那里描述的内容.
该文件说,
在命中测试中,窗口调用
hitTest:withEvent:视图层次结构的最顶层视图; 此方法通过递归调用pointInside:withEvent:视图层次结构中返回YES的每个视图继续进行,继续向下移动层次结构,直到找到触摸发生在其边界内的子视图.该视图成为热门测试视图.
那么只有hitTest:withEvent:系统调用最顶层的视图,调用pointInside:withEvent:所有子视图,如果从特定子视图返回是YES,那么调用pointInside:withEvent:该子视图的子类?
在iPhone上设置动画视图过渡的最佳做法是什么?
例如,ViewTransitions来自apple 的示例项目使用如下代码:
CATransition *applicationLoadViewIn = [CATransition animation];
[applicationLoadViewIn setDuration:1];
[applicationLoadViewIn setType:kCATransitionReveal];
[applicationLoadViewIn setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]];
[[myview layer] addAnimation:applicationLoadViewIn forKey:kCATransitionReveal];
Run Code Online (Sandbox Code Playgroud)
但是网络上还有漂浮的代码片段,如下所示:
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.75];
[UIView setAnimationDelegate:self];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:myview cache:YES];
[myview removeFromSuperview];
[UIView commitAnimations];
Run Code Online (Sandbox Code Playgroud)
什么是最好的方法?如果你也可以提供一个片段,那就非常感激了.
注意:我无法让第二种方法正常工作.
对于UIScrollView *toScrollView(这是屏幕的宽度),我想添加一个灰色的底部边框(与iPhone的原生消息应用程序的撰写视图的to-field完全相同).
为了做到这一点,我跟随Cocoa Touch:如何改变UIView的边框颜色和厚度?并使用自定义覆盖顶部边框UINavigationBar并制作了toScrollViewx坐标-1和宽度322,以便左右边框就在屏幕外.
这看起来很好,但它有点像黑客,我想知道是否有更好的方法来做到这一点.
- (void)viewDidLoad {
[super viewDidLoad];
// Add UINavigationBar *navigationBar at top.
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemCancel
target:self action:@selector(cancelAction)];
UINavigationBar *navigationBar = [[UINavigationBar alloc]
initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 44.0f)];
navigationBar.items = [NSArray arrayWithObject:self.navigationItem];
// Add UIScrollView *toScrollView below navigationBar.
UIScrollView *toScrollView = [[UIScrollView alloc]
initWithFrame:CGRectMake(-1.0f, 43.0f, 322.0f, 45.0f)];
toScrollView.backgroundColor = [UIColor whiteColor];
toScrollView.layer.borderColor = [UIColor colorWithWhite:0.8f alpha:1.0f].CGColor;
toScrollView.layer.borderWidth = 1.0f;
[self.view addSubview:toScrollView];
[self.view addSubview:navigationBar]; // covers top of toScrollView …Run Code Online (Sandbox Code Playgroud) 这是我的Objective-C代码,我用它来为我的自定义加载一个笔尖UIView:
-(id)init{
NSArray *subviewArray = [[NSBundle mainBundle] loadNibNamed:@"myXib" owner:self options:nil];
return [subviewArray objectAtIndex:0];
}
Run Code Online (Sandbox Code Playgroud)
Swift中的等效代码是什么?
有没有办法验证a CGPoint是否在特定内部CGRect.例如:我正在拖动一个UIImageView,我想验证它的中心点CGPoint是否在另一个内部UIImageView我该怎么办?
在iPhone应用程序中使用视图和视图控制器时,任何人都可以解释loadView和viewDidLoad之间的区别吗?
我个人的背景是,我从代码构建我的所有视图,我不会,也不会使用Interface Builder,如果这有任何区别.
我发现通常当我将初始化代码添加到loadView时,我最终会得到一个无限的堆栈跟踪,所以我通常在viewDidLoad中完成所有的子视图构建...但是每次执行时我都不清楚它,并且什么是更适合放置init代码的地方.什么是完美的,是一个简单的初始化调用图.
谢谢!
uiview ×10
ios ×9
objective-c ×4
cocoa-touch ×3
iphone ×3
swift ×2
border ×1
cgpoint ×1
cgrect ×1
mapkit ×1
uikit ×1
uiscrollview ×1
xib ×1