今天我花了几天时间只是为了在我的应用程序加载时隐藏PickerView,但问题不在于PickerView.它与CGRectMake有关.
我在Xcode上尝试了一个简单的项目,只是为了向您展示CGRectMake对我不起作用......
这是我的故事板(灰色区域是UIView组件):

这是我的界面:
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@property (strong, nonatomic) IBOutlet UIView *container;
@end
Run Code Online (Sandbox Code Playgroud)
这是我的实施文件:
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
_container.frame = CGRectMake(0, 0, 320, 204);
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
Run Code Online (Sandbox Code Playgroud)
它是非常基本的代码,没有被其他代码污染......但是,给予CGRectMake的任何数字都不会使灰色区域移动.我已经改变了X,Y值,但灰色的UIView仍然像你在故事板上看到的那样.
为什么CGRectMake没有处理我的案子?哪里有问题?
更新:我在检查员框中看到了autolayout

更新:这是我的连接检查器

所以我有一个UIScrollView,其中填充了一系列MyCustomViews,它们是标准UIView的子类.在委托回调"scrollViewDidScroll我试图循环遍历所有子视图并调用它们上的特定函数,但我不认为类型转换是有效的.这是我的代码如下:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
for(UIView *subView in [scrollView subviews){
MyCustomView *customView = (MyCustomView *)subView;
[customView myMethod];
}
}
Run Code Online (Sandbox Code Playgroud)
当我在customView上调用"myMethod"时,程序崩溃说一个无法识别的选择器被发送到实例.我相信我的类型转换是myMethod在其他情况下工作的方法.那么我该如何解决这种情况呢?
我的应用程序有多个视图以编程方式添加按钮,而不是在每个控制器中使用以下实例方法,我想将该方法放在一个公共类中,将其用作类方法.
+ (void) addLeftImageButton:(UIButton *)leftButton:(float)x:(float)y:(NSString *)name:(int) tag
{
leftButton = [UIButton buttonWithType:UIButtonTypeCustom];
[leftButton addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
[leftButton setTag: tag];
[leftButton setBackgroundImage:[UIImage imageNamed:name] forState:UIControlStateNormal];
leftButton.frame = CGRectMake(x, y, 345.0, 345.0);
[self.view addSubview:leftButton];
}
Run Code Online (Sandbox Code Playgroud)
我的问题是如何引用self.view调用视图.如self.view没有在普通类公知的.
我想向UIView添加一个属性.我知道我可以继承一个UIView但是因为我想添加一个属性我想要扩展它.
我试着这样:
@interface UIView (Util)
@property(nonatomic, assign) BOOL isShow;
@end
@implementation UIView (Util)
@dynamic isShow;
-(void)setIsShow:(BOOL)isShow{
self.isShow = isShow;
}
@end
Run Code Online (Sandbox Code Playgroud)
但它不起作用.它引发了一个例外:Thread 1: EXC_BAD_ACCESS(code=2,address,...)
我正在UIImageView使用UIView块API制作动画.我的动画UIImageView连续淡出In和Out.如何在特定的持续时间内为此设置动画?
我已经提出了这段代码
float tempDuration = 5.0;
[UIView animateWithDuration:tempDuration
delay:0
options:UIViewAnimationOptionAutoreverse | UIViewAnimationOptionAllowUserInteraction
animations:^{
_imageView.alpha = 1;
}
completion:nil];
Run Code Online (Sandbox Code Playgroud) 我有一个"加载..."覆盖UIView子类,在我的应用程序的各个地方使用.视图看起来总是一样的,并且一次不应该使用多个视图.这似乎是使用单身人士的好地方.为简单起见,我想只是类的方法showOverlay和hideOverlay,让每一个使用它不具有类来管理它的一个实例.它到处都是重复的代码.
我的直觉告诉我这是一个坏主意,但我不确定为什么会这样.它被认为是一种不好的做法吗?这是一个简单的视图,不应占用太多内存.
我使用此代码在2之间进行更改UIView:
UIViewAnimationOptions animationType = UIViewAnimationOptionTransitionFlipFromLeft;
[UIView transitionFromView:self.playlistTableView toView:self.playerView duration:0.5 options:animationType completion:^(BOOL finished){
[self.containerView sendSubviewToBack:self.upperView];
[self.containerView sendSubviewToBack:self.playerView];
self.isPlaylistVisible = !self.isPlaylistVisible;
isControlsHidden = NO;
}];
Run Code Online (Sandbox Code Playgroud)
而且我注意到一种奇怪的行为,当我将翻转的高度调整为self.playerView20px并且在一秒之后,它会增加回到正常的帧大小.
我尝试更改animationType为UIViewAnimationOptionLayoutSubviews,现在当我在视图之间切换时,不会发生此行为.知道可能是什么问题吗?
我有一个UIView,我想在它动画的同时得到它的当前帧.我正在使用基本动画:
[UIView beginAnimations:@"MoveView" context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView setAnimationDuration:3];
_testView.frame = CGRectMake(0, 100, 40, 40);
[UIView commitAnimations];
Run Code Online (Sandbox Code Playgroud)
我有一个按钮,应该在动画时在第一个当前位置添加另一个UIView,但是当我按下按钮时,它会将它添加到动画的结束位置......有什么建议吗?先感谢您!
现在我明白这个问题之前已被问过,但答案并不令人满意.我的问题是我有一个带有视图的视图控制器和包含标签的东西.我为它添加了一堆代码,现在我正在扩展它.我现在有一个问题,我决定在我的界面添加另一个UIView,它有一个标签,该标签将像我在第一个UIView中的标签一样完全正常运行.我的问题是我不想进入我的视图控制器方法,每次操作第一个标签时都要添加另一行代码.无论如何,我可以将另一个标签链接到我为我的第一个标签设置的初始IBOutlet吗?或者每次操作第一个标签时,我是否必须进入我的代码并添加额外的代码行?
我有一个叫做qShake的UIView.当用户出错时,我希望该视图在很短的时间内在一个小空间内从左向右摇动.如何制作动画呢?
uiview ×10
ios ×9
objective-c ×7
animation ×2
casting ×1
cgrect ×1
extend ×1
iphone ×1
singleton ×1
uiimageview ×1