标签: uiview

UIVut中的UIButton作为子视图而不是攻丝(无动作,无颜色变化)

我有一个UIView,它是UINavigationController Ex 的子视图.

- (void) ViewDidload{
    UIView *theSubView = [[UIView alloc] init];

    UIButton *button = [UIButton . . . .]
    . . . .
    [theSubView addSubView:button];
    [self.view addSubview:theSubView];
}
Run Code Online (Sandbox Code Playgroud)

我放在"theSubView"里面的所有标签和按钮都显示出来,但它们对任何触摸都没有反应.

UIButton还不是"theSubView"的子视图,如果它的工作原理,但是当它是自我的子视图它的工作原理.

所以我的问题是如何在"TheSubView"(UIView)工作中制作Button?它没有点亮或任何东西.

iphone objective-c subview uibutton uiview

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

UIViewController initWithNibName导致nil视图

我正在尝试制作一个始终加载相同笔尖的视图控制器.我的初始化代码如下所示:

-(id)init
{
    NSString* nibName;

    if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
        nibName = @"XIB_iPad";
    else
        nibName = @"XIB_iPhone";

    self = [super initWithNibName:nibName bundle:nil];
    if (self)
    {
        ...
    }
    return self;
}

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    return [self init];
}
Run Code Online (Sandbox Code Playgroud)

问题是该代码导致视图控制器具有零视图.我有什么问题吗?有一个更好的方法吗?

谢谢.

iphone uiviewcontroller uiview nib ios

0
推荐指数
2
解决办法
5054
查看次数

目标c - 设置子视图框架的正确方法,使其填满屏幕

我有一个viewController里面的一个navigationController,视图控制器有一个tableview.
viewDidLoad我设置tableview

- (void)viewDidLoad
{
    [super viewDidLoad];

    // init tableView
    CGRect tableFrame = self.view.bounds;

    _tableView = [[UITableView alloc] initWithFrame:tableFrame style:UITableViewStylePlain];

    _tableView.delegate = self;
    _tableView.dataSource = self;

    [self.view addSubview:_tableView];
}
Run Code Online (Sandbox Code Playgroud)

这段代码的问题是表视图框架不正确 - 高度为460,我需要它为416.

[iPhone屏幕高度为480,减去状态栏(20)减去导航栏(44)= 416]

那么设置表格视图以便填充屏幕的正确方法是什么?
我可以想到两种方式:

  1. 将其框架设置为= (0, 0, 320, 416)

  2. 使用: [_tableView setAutoresizingMask:(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth)];

iphone objective-c uiviewcontroller uiview ios

0
推荐指数
2
解决办法
1994
查看次数

获取UIView中的所有对象?

是否有可能获得我从一个视图控制器传递到另一个视图控制器的UIView的所有对象(没有从父视图控制器获取它们)?就像是

NSArray *objects = [myView getAllObjects];
Run Code Online (Sandbox Code Playgroud)

xcode objective-c uiview ios

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

检查iphone开发中哪个视图位于顶部

我有4个视图并用4个按钮控制这些视图,我有点困惑,如何检查哪个视图在顶部,我已经尝试过isFirstResponder但它不起作用.如果有人知道请帮助我.提前致谢.

iphone xcode objective-c uiview ios

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

子分类UIView错误

当我将一个xib类设置为UIView的子类,然后animateWithDuration在UIView上我得到了

No visible @interface for 'UIView' declares the selector
'animateWithDuration:delay:options:animations:completion:' 
Run Code Online (Sandbox Code Playgroud)

错误窗格显示它是ARC问题

在此输入图像描述

我想在UIView上运行动画.

编辑:导致错误的代码

 [sampleSourceView.view animateWithDuration:1
                                             delay:1.0
                                           options: UIViewAnimationCurveEaseOut
                                        animations:^{
                                            sampleSourceView.view.frame = sampleSourceFrame;
                                        } 
                                        completion:^(BOOL finished){
                                            NSLog(@"Done!");
                                        }];

        [self.view addSubview:sampleSourceView.view];
Run Code Online (Sandbox Code Playgroud)

core-animation uiview ios

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

后退按钮推送到上一个视图ios

我有一个"设置"类型视图,我希望我的标签导航中的每个视图都可以访问该视图.我可以进入设置视图,但是如何编写一个按钮,将您带回到带您进入视图的按钮?例如,如果我从视图1访问设置视图,我想让后退按钮返回到视图1.然后,如果我从视图2访问它,我想要相同的后退按钮返回到视图2.

谢谢!

xcode objective-c uiview uitabbar ios

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

UIView始终位于最前面

我的视图层次结构非常复杂。每个部分都有一个带有UINavigation Controller的Master-Detail View Controller,每个View Controller内部都有自己的UView。我有一个覆盖视图,它支持缓冲区或拖放事件的持有人。无论在任何给定时间点,无论层次结构如何,我都希望此视图位于所有子视图的顶部。

有没有一种方法可以使UIView始终位于顶部。

就像是

   overlayView.alwaysOntop = YES;

我可以手动使用功能,例如,将子视图置于最前面,在子视图的上方,下方等插入子视图,但这使我的应用程序非常复杂。

iphone uiviewcontroller uiview ios

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

UIView中的UIImage并显示图像部分超出范围

我在子视图中有一个比自己的子视图更大的图像,是否可以显示超出子视图的图像部分!试过了

view.clipsToBounds=NO; 
Run Code Online (Sandbox Code Playgroud)

但不缺.

到目前为止,这是我的代码的一部分.

xRayView = [[XRayView alloc] initWithFrame: CGRectMake((1024 - 800) / 2, self.device.frame.origin.y - 26, 800,530)];
        xRayView.clipsToBounds=NO;
        [xRayView setForgroundImage: [UIImage imageWithContentsOfFile: [[NSBundle mainBundle] pathForResource: @"xray_foreground_01" ofType: @"png"]]];
        [xRayView setBackgroundImage: [UIImage imageWithContentsOfFile: [[NSBundle mainBundle] pathForResource: @"xray_background_01" ofType: @"png"]]];
Run Code Online (Sandbox Code Playgroud)

前景和背景图像比X射线视图大

在XrayView中我有2个属性

backgroundImage foregroundImage

那个方法

- (void)drawRect: (CGRect)rect
{
    [super drawRect: rect];

    CGRect forgroundClips[] = {
        CGRectMake((self.frame.size.width - self.forgroundImage.size.width)/2, 0, self.forgroundImage.size.width, currentPan.origin.y),
        CGRectMake((self.frame.size.width - self.forgroundImage.size.width)/2, currentPan.origin.y + currentPan.size.height, self.forgroundImage.size.width, self.forgroundImage.size.height - (currentPan.origin.y + currentPan.size.height))
    };

    CGContextSaveGState(UIGraphicsGetCurrentContext());
    CGContextTranslateCTM(UIGraphicsGetCurrentContext(), 0, self.bounds.size.height);
    CGContextScaleCTM(UIGraphicsGetCurrentContext(), 1, …
Run Code Online (Sandbox Code Playgroud)

objective-c uiview uiimage ios

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

UIView.superView(BOOL)==失败

我有一个简单的方法来检查视图的超级视图,并返回一个BOOL.然而,间歇性地,该方法无法产生正确的答案(或者至少是我期望的答案).

方法是:

-(BOOL) isTheViewShowing
{
    return (BOOL) [theView superview];
}
Run Code Online (Sandbox Code Playgroud)

有一个删除视图的Tap Gesture,我记录了以下内容(当不良情况发生时):

isTheViewShowing: NO
theView: <UIView: 0x3c1a10; frame = (0 232; 320 135); clipsToBounds = YES; layer = <CALayer: 0x365480>>,
superView: <UIView: 0x392400; frame = (0 0; 320 367); autoresize = W+H; layer = <CALayer: 0x35fe90>>
Run Code Online (Sandbox Code Playgroud)

由于日志显示superView存在,但为什么演员表失败?

casting boolean objective-c uiview ios

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