我的代理中有一个方法可以做到这一点:
-(void)showAddingPersonalDetails; {
personal = [[AddingPersonalDetails alloc] initWithNibName:@"AddingWithPersonalDetails" bundle:nil];
[window addSubview:personal.view];
[window makeKeyAndVisible];
mainscreen.view.hidden = YES;
NSLog(@"Called");
}
Run Code Online (Sandbox Code Playgroud)
在我需要之前,我不希望这个视图被初始化.这就是放入方法的原因.
问题是,我似乎无法从另一个类访问此代码.
我甚至试过这个:
BitWiseAppDelegate *appDelegate = (BitWiseAppDelegate *)[[UIApplication sharedApplication] delegate];
appDelegate.showAddingPersonalDetails;
Run Code Online (Sandbox Code Playgroud)
但它不起作用.有任何想法吗?
我正在尝试在代码中添加16个UIButton到我的主视图的子视图中:
internView = [[UIView alloc] initWithFrame:CGRectMake(16, 16, (self.view.frame.size.width - 16), (self.view.frame.size.height - 16) - 60)];
internView.backgroundColor = [UIColor whiteColor];
for (int rij = 0; rij < 4; rij++) //4 rows
{
for (int kolom = 0; kolom < 4; kolom++) //4 colomns
{
CGFloat x = (((width + spacing) * kolom) + spacing);
CGFloat y = (((height + spacing) * rij) + spacing);
int tag = ((4 * rij) + kolom);
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(x, y, width, height)]; …Run Code Online (Sandbox Code Playgroud) 我在uiview子类中创建了一个活动指示器和一个标签,并在许多不同的tab中调用它.除了Graph Hosting视图(CPTGraphHostinView)之外,它在我调用它的大多数地方都能正常工作.在这个特定的视图中,subView看起来是颠倒的.标签位于微调器上方.我尝试使用imageview而不是标签,并使用相同的倒置图像.
这是我的initWithframe方法
- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
// Initialization code.
NSLog(@"AI: init with frame");
spinnerView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
spinnerView.center = self.center;
[self addSubview:spinnerView];
UILabel* loadingMsg = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 90.0f, 30.0f)];
loadingMsg.center = CGPointMake(spinnerView.center.x , spinnerView.center.y + spinnerView.bounds.size.height/2 +10);
loadingMsg.textAlignment = UITextAlignmentCenter;
loadingMsg.backgroundColor = [UIColor clearColor];
loadingMsg.text = @"loading";
[self addSubview:loadingMsg];
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
这里是对activityIndicator的调用,在视图中加载了
ob_activityobject = [[ActivityIndicator alloc] initWithFrame:self.view.bounds];
[ob_activityobject showInView:self.view];
Run Code Online (Sandbox Code Playgroud)

我有一个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) 我正在使用CGAffineTransformMakeRotation其transform属性旋转子视图.稍后,我需要了解子视图已旋转了多远.我意识到我可以简单地使用int来跟踪它,但有一种简单的方法来获得子视图的当前旋转吗?
不确定为什么这不能从父视图中删除添加的子视图.如果longpress操作结束,我希望它被删除.我使用NSLog进行了测试,我知道手势已正确注册为已结束,但它并未删除子视图.
-(void)addSubview:(UILongPressGestureRecognizer *)gesture {
NSArray *subviewArray = [[NSBundle mainBundle] loadNibNamed:@"overlayView" owner:self options:nil];
UIView *subView = [subviewArray objectAtIndex:0];
if (gesture.state == UIGestureRecognizerStateBegan) {
[self.view addSubview:subView];
}
if (gesture.state == UIGestureRecognizerStateEnded) {
[subView removeFromSuperview];
}
}
Run Code Online (Sandbox Code Playgroud)
longpress启动:添加子视图.
longpress结束:删除子视图.
在主视图中,我在UITableView另一个视图下面,textInputView包含a UITextField和a UIButton.
向上移动UIView包含UITextField,UIButton当键盘显示不起作用时.
-(void)animateTextField:(UITextField*)textField up:(BOOL)up
{
const int movementDistance = -224; // tweak as needed
const float movementDuration = 0.3f; // tweak as needed
int movement = (up ? movementDistance : -movementDistance);
[UIView beginAnimations: @"animateTextField" context: nil];
[UIView setAnimationBeginsFromCurrentState: YES];
[UIView setAnimationDuration: movementDuration];
textInputView.frame = CGRectOffset(textInputView.frame, 0, movement);
[UIView commitAnimations];
}
- (void)textFieldDidBeginEditing:(UITextField *)textField{
[self animateTextField:textField up:YES];
}
- (void)textFieldDidEndEditing:(UITextField *)textField
{
[self animateTextField:textField up:NO];
}
Run Code Online (Sandbox Code Playgroud)
如果我用self.view它替换textInputView …
我在UITableViewCell中有3个UILabel,当我尝试更新单元格并且没有正确更新时,它会导致我出现问题.我希望能够从单元格中删除所有子视图,然后创建新的UILabel,然后这应该工作.如何从单元格中删除所有子视图?
对不起,如果有一个广泛的问题,但不知道从哪里开始.
在我的一个 iOS 项目中,我以编程方式在我的 Feed ViewController(主视图)上添加了 Filter ViewController(子视图)的子视图。
Filter ViewController 上有几个按钮可以选择价格、城市等。
插座已连接,但当我尝试拍摄按钮动作时,它不起作用。我还启用了 isUserInteractionEnabled 但它仍然不起作用。
附件。对我来说,这与视图上的子视图有关!但要解决这个问题。你能建议我如何拍摄子视图发生的按钮动作吗?
class FilterViewController: BaseUIViewController{
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
cityButton.isUserInteractionEnabled = true
}
@IBAction func selectCity(_ sender: Any)
{
print("selectCity action")
}
}
Run Code Online (Sandbox Code Playgroud) 你们中的任何人都知道如何在视图中获取子视图列表?有一种方法可以将列表放入数组中吗?
NSMutableArray *subviews= .... //all my subviews
Run Code Online (Sandbox Code Playgroud)