标签: uiview

didMoveToWindow:如何调用此方法?

我花时间搜索这个没有太大成功(包括文档),仍然困惑的didMoveToWindow:方法.

使用didMoveToWindow:在库存查看项目模板:

-(void)didMoveToWindow{

    [super didMoveToWindow];

    // do something

}
Run Code Online (Sandbox Code Playgroud)

发出以下警告:

警告:'UIViewController'可能无法响应'didMoveToWindow'

启动视图时不会调用它,这是一个惊喜.
如何调用此方法?

xcode uiview ios

0
推荐指数
1
解决办法
3383
查看次数

来自图像的CGPath

我需要根据图像(任何可能的形状)创建蒙版.我需要:

  1. 使用CGPath创建CALayer作为正确的掩码
  2. 调用[UIView.layer setMask:with layer above]

所以主要的问题是如何基于黑白图像设置CGPath?或者是否可以直接从图像中放置面具?

谢谢!


面具的示例图像: 示例掩码

cocoa-touch mask calayer uiview cgpath

0
推荐指数
1
解决办法
5434
查看次数

我怎样才能重新加载我的UIViewController?

我在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)

iphone cocoa-touch objective-c uiviewcontroller uiview

0
推荐指数
1
解决办法
6073
查看次数

像Mac OS内核恐慌的UIview动画

当Mac内核恐慌,有动画,它不完全像幻灯片动画,如何在iPhone中实现这个动画,是否存在这样做的API?

iphone animation objective-c uiview

0
推荐指数
1
解决办法
159
查看次数

UIActionSheet无效参数不满足:view!= nil

我在导航堆栈上弹出一些视图控制器后出现此错误,最后我通过操作表询问问题.我得到的错误参数不满意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

0
推荐指数
1
解决办法
3874
查看次数

iOS子视图,按钮没有响应触摸.

我有一个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)

subview uiview ios

0
推荐指数
1
解决办法
3535
查看次数

自定义UIToolbar使用动画调整大小

我正在使用这段代码调整我的自定义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)

上面的代码,正确改变宽度,但没有动画,任何人都可以告诉我为什么?

谢谢

xcode uitoolbar uiview

0
推荐指数
1
解决办法
1577
查看次数

如何将帧*和*变换从一个UIView传输到另一个UIView而不失真?

我有一个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)

cocoa-touch uiview cgaffinetransform cgrect

0
推荐指数
1
解决办法
1916
查看次数

iOS获取子视图的轮换

我正在使用CGAffineTransformMakeRotationtransform属性旋转子视图.稍后,我需要了解子视图已旋转了多远.我意识到我可以简单地使用int来跟踪它,但有一种简单的方法来获得子视图的当前旋转吗?

iphone objective-c subview uiview ios

0
推荐指数
1
解决办法
882
查看次数

创建UIButton并将其添加到多个UIView上

我想创建一个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)

任何的想法 ?

谢谢

objective-c uiview ios

0
推荐指数
1
解决办法
146
查看次数