我有一个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?它没有点亮或任何东西.
我正在尝试制作一个始终加载相同笔尖的视图控制器.我的初始化代码如下所示:
-(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)
问题是该代码导致视图控制器具有零视图.我有什么问题吗?有一个更好的方法吗?
谢谢.
我有一个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]
那么设置表格视图以便填充屏幕的正确方法是什么?
我可以想到两种方式:
将其框架设置为= (0, 0, 320, 416)
使用: [_tableView setAutoresizingMask:(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth)];
是否有可能获得我从一个视图控制器传递到另一个视图控制器的UIView的所有对象(没有从父视图控制器获取它们)?就像是
NSArray *objects = [myView getAllObjects];
Run Code Online (Sandbox Code Playgroud) 我有4个视图并用4个按钮控制这些视图,我有点困惑,如何检查哪个视图在顶部,我已经尝试过isFirstResponder但它不起作用.如果有人知道请帮助我.提前致谢.
当我将一个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) 我有一个"设置"类型视图,我希望我的标签导航中的每个视图都可以访问该视图.我可以进入设置视图,但是如何编写一个按钮,将您带回到带您进入视图的按钮?例如,如果我从视图1访问设置视图,我想让后退按钮返回到视图1.然后,如果我从视图2访问它,我想要相同的后退按钮返回到视图2.
谢谢!
我的视图层次结构非常复杂。每个部分都有一个带有UINavigation Controller的Master-Detail View Controller,每个View Controller内部都有自己的UView。我有一个覆盖视图,它支持缓冲区或拖放事件的持有人。无论在任何给定时间点,无论层次结构如何,我都希望此视图位于所有子视图的顶部。
有没有一种方法可以使UIView始终位于顶部。
就像是
overlayView.alwaysOntop = YES;
我可以手动使用功能,例如,将子视图置于最前面,在子视图的上方,下方等插入子视图,但这使我的应用程序非常复杂。
我在子视图中有一个比自己的子视图更大的图像,是否可以显示超出子视图的图像部分!试过了
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) 我有一个简单的方法来检查视图的超级视图,并返回一个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存在,但为什么演员表失败?