我花时间搜索这个没有太大成功(包括文档),仍然困惑的didMoveToWindow:方法.
使用didMoveToWindow:在库存查看项目模板:
-(void)didMoveToWindow{
[super didMoveToWindow];
// do something
}
Run Code Online (Sandbox Code Playgroud)
发出以下警告:
警告:'UIViewController'可能无法响应'didMoveToWindow'
启动视图时不会调用它,这是一个惊喜.
如何调用此方法?
我需要根据图像(任何可能的形状)创建蒙版.我需要:
所以主要的问题是如何基于黑白图像设置CGPath?或者是否可以直接从图像中放置面具?
谢谢!
面具的示例图像:

我在viewDidLoad和其他方法中有一个代码,我想重新加载它们如果我点击一个按钮,我已经尝试了setNeedDisplay但它不起作用,我不知道我是否在正确的感觉中使用它?
这是我在viewDidLoad中的代码:
- (void)viewDidLoad
{
// Create the UISegmentedControler "Next Review" and "Previouse Review"
UISegmentedControl *paginateReviewSegment = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"Précedent",@"Suivant", nil]];
paginateReviewSegment.segmentedControlStyle = UISegmentedControlStyleBar;
[paginateReviewSegment addTarget:self action:@selector(paginateReviews:) forControlEvents:UIControlEventValueChanged];
UIBarButtonItem *paginateBarButton = [[UIBarButtonItem alloc] initWithCustomView:paginateReviewSegment];
self.navigationItem.rightBarButtonItem = paginateBarButton;
[super viewDidLoad];
// Get the review selected
entryReview = [[entriesReview getEntries] objectAtIndex:self.reviewSelected];
// Resize the UIScrollView
[self.scrollView setScrollEnabled:YES];
[self.scrollView setContentSize:self.contentView.frame.size];
// Add UIView "Content" to UIScrollView
[self.scrollView addSubview:self.contentView];
// Set the user name
userNameLabel.text = entryReview.userName;
.....
}
Run Code Online (Sandbox Code Playgroud)
这是我想用来重新加载UIView的动作:
- (void)paginateReviews:(UISegmentedControl*)sender
{ …Run Code Online (Sandbox Code Playgroud) 当Mac内核恐慌,有动画,它不完全像幻灯片动画,如何在iPhone中实现这个动画,是否存在这样做的API?
我在导航堆栈上弹出一些视图控制器后出现此错误,最后我通过操作表询问问题.我得到的错误参数不满意view != nil,这让我发疯,因为它nil在我调用动作表之前检查时不是一个值.
if (self.view != nil) {
NSLog(@"view is not nil");
}
UIActionSheet *actionSheet = [[UIActionSheet alloc]initWithTitle:@"title" delegate:nil cancelButtonTitle:@"cancel" destructiveButtonTitle:@"destructive" otherButtonTitles:nil];
[actionSheet showInView:self.view];
Run Code Online (Sandbox Code Playgroud) cocoa-touch uiviewcontroller uiview uinavigationcontroller uiactionsheet
我有一个UIView子类,其中有一个带有按钮的框架/图像.我正在尝试将它添加到我的视图控制器中,但是当我这样做时会显示但没有任何按钮会记录任何触摸.
这是我的UIView子类.
#import "ControlView.h"
@implementation ControlView
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
CGRect slideFrame = CGRectMake(0, 402, 320, 82);
slider = [[UIView alloc] initWithFrame:slideFrame];
slider.backgroundColor = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"shelf.png"]];
[self addSubview:slider];
UIImage *btnImage = [UIImage imageNamed:@"NavBar_01.png"];
UIImage *btnImageSelected = [UIImage imageNamed:@"NavBar_01_s.png"];
btnImage = [UIImage imageNamed:@"NavBar_01.png"];
btnImageSelected = [UIImage imageNamed:@"NavBar_01_s.png"];
btn1 = [UIButton buttonWithType:UIButtonTypeCustom];
btn1.frame = CGRectMake(12, 28, 70, 50);
[btn1 setBackgroundImage:btnImage forState:UIControlStateNormal];
[btn1 setBackgroundImage:btnImageSelected forState:UIControlStateSelected];
[slider addSubview:btn1];
[slider bringSubviewToFront:btn1];
[btn1 addTarget:self action:@selector(home) forControlEvents:UIControlEventTouchUpInside];
btnImage = …Run Code Online (Sandbox Code Playgroud) 我正在使用这段代码调整我的自定义UIToolbar的大小以更改width属性
[UIView animateWithDuration:0.3 delay:0.3 options:0 animations:^{
self.navToolbar.frame=CGRectMake(0, 0, 200, 30);
} completion:nil];
Run Code Online (Sandbox Code Playgroud)
上面的代码,正确改变宽度,但没有动画,任何人都可以告诉我为什么?
谢谢
我有一个UIView可能会应用比例和/或旋转变换.我的控制器创建一个新控制器并将视图传递给它.新控制器创建一个新视图,并尝试将其放置在与传递视图相同的位置和旋转中.它通过转换原始视图的框架来设置位置和大小:
CGRect frame = [self.view convertRect:fromView.frame fromView:fromView.superview];
ImageScrollView *isv = [[ImageScrollView alloc]initWithFrame:frame image:image];
Run Code Online (Sandbox Code Playgroud)
这很好用,缩放的大小和位置完美复制.但是,如果有变换应用到旋转fromView,它并没有转移.
所以我添加了这一行:
isv.transform = fromView.transform;
Run Code Online (Sandbox Code Playgroud)
很好地处理转移旋转,但也转换比例转换.结果是缩放变换有效地应用了两次,因此得到的视图太大了.
那么如何将位置(原点),比例和旋转从一个视图转移到另一个视图,而不会使比例增加一倍?
编辑
这是一个更完整的代码示例,其中原始的UIImageView(fromView)用于调整和定位UIScrollView(ImageScrollView子类):
CGRect frame = [self.view convertRect:fromView.frame fromView:fromView.superview];
frame.origin.y += pagingScrollView.frame.origin.y;
ImageScrollView *isv = [[ImageScrollView alloc]initWithFrame:frame image:image];
isv.layer.anchorPoint = fromView.layer.anchorPoint;
isv.transform = fromView.transform;
isv.bounds = fromView.bounds;
isv.center = [self.view convertPoint:fromView.center fromView:fromView.superview];
[self.view insertSubview:isv belowSubview:captionView];
Run Code Online (Sandbox Code Playgroud)
这是ImageScrollView中的整个配置:
- (id)initWithFrame:(CGRect)frame image:(UIImage *)image {
if (self = [self initWithFrame:frame]) {
CGRect rect = CGRectMake(0, …Run Code Online (Sandbox Code Playgroud) 我正在使用CGAffineTransformMakeRotation其transform属性旋转子视图.稍后,我需要了解子视图已旋转了多远.我意识到我可以简单地使用int来跟踪它,但有一种简单的方法来获得子视图的当前旋转吗?
我想创建一个UIButton并将其添加到多个UIView上,但它不能像这样工作:
UIButton *myBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[myBtn setFrame:CGRectMake(0.0f, 0.0f, 100.0f, 44.0f)];
[myBtn setTitle:@"MyButton" forState:UIControlStateNormal];
UIView *myView1 = [[UIView alloc] init];
[myView1 setFrame:CGRectMake(0.0f, 0.0f, 300.0f, 50.0f)];
[myView1 addSubview:myBtn];
UIView *myView2 = [[UIView alloc] init];
[myView2 setFrame:CGRectMake(0.0f, 0.0f, 200.0f, 100.0f)];
[myView2 addSubview:myBtn];
Run Code Online (Sandbox Code Playgroud)
任何的想法 ?
谢谢