完成此链接后,我的代码问题是输出图像无法设置正确的x和y值,因为裁剪后的图像似乎在结果图像中有0和0,无论我在哪里缩放(或计算滚动偏移的位置) .这是我尝试过的.
- (IBAction)crop:(id)sender
{
float zoomScale = 1.0f / [self.scroll zoomScale];
CGRect rect;
NSLog(@"contentOffset is :%f,%f",[self.scroll contentOffset].x,[self.scroll contentOffset].y);
rect.origin.x = self.scroll.contentOffset.x * zoomScale;
rect.origin.y = self.scroll.contentOffset.y * zoomScale;
rect.size.width = self.scroll.bounds.size.width * zoomScale;
rect.size.height = self.scroll.bounds.size.height * zoomScale;
UIGraphicsBeginImageContextWithOptions( CGSizeMake(rect.size.width, rect.size.height),
NO,
0.);
NSLog(@"rect offset is :%f,%f",rect.origin.x,rect.origin.y);
CGPoint point = CGPointMake(-rect.origin.x, -rect.origin.y); **//even though above NSLog have some values, but output image is unable to set proper x and y values as cropped image seems to have …Run Code Online (Sandbox Code Playgroud) 我有一个UIScrollview里面有UIImageView.
如果我在添加到滚动视图之前向UIImageView添加手势,则不会触发触摸事件.
我想得到一个点击发生的UIImageView.
我已经看到了一些关于从UIScrollView获取触摸点然后根据位置计算UIImageView的答案 - 但这看起来非常混乱和矫枉过正.
有没有一种简单的方法可以从UIScrollView中的对象获取触摸事件?
我想在UIScrollView中获取UIButton的位置问题是,当UIButton位于其原始位置或向下滚动时,我得到相同的位置...
我正在使用NSLog打印位置,我得到相同的输出
没有向下滚动我得到...
2014-11-05 19:28:02.564 ... {{260, 163}, {370, 225}}
Run Code Online (Sandbox Code Playgroud)即使我向下滚动,我也得到相同的输出......
2014-11-05 19:28:06.052 ... {{260, 163}, {370, 225}}
Run Code Online (Sandbox Code Playgroud)这是我使用获得的位置代码的UIButton里面的UIScrollView ...
NSLog(@"%@", NSStringFromCGRect(CGRectMake(myButton.frame.origin.x, myButton.frame.origin.y, myScrollDown.frame.size.width, myScrollDown.frame.size.height)));
Run Code Online (Sandbox Code Playgroud)
有一种方法可以在我向下滚动后获得UIButton的实际位置?
还有另一种方法可以在ScrollView中获取UIButton的位置吗?
我已经访问了以下链接,但我还没有解决它.
iPhone - 在整个UIWindow中获取UIView的位置
谢谢你的帮助!
你怎么写这个?我在翻译时遇到了麻烦,因为swift是我的第一语言,这都是用Objective C.编写的.
UIScrollView * scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
scrollView.contentSize = CGSizeMake(scrollView.frame.size.width * 3, scrollView.frame.size.height);
scrollView.delegate = self;
UIPageControl * pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(0, 90, scrollView.frame.size.width, 20)];
pageControl.numberOfPages = scrollView.contentSize.width/scrollView.frame.size.width;
[pageControl addTarget:self action:@selector(changePage:) forControlEvents:UIControlEventValueChanged];
Then you need to add the following two methods:
- (IBAction)changePage:(id)sender {
CGFloat x = pageControl.currentPage * scrollView.frame.size.width;
[scrollView setContentOffset:CGPointMake(x, 0) animated:YES];
}
-(void) scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
NSInteger pageNumber = roundf(scrollView.contentOffset.x / (scrollView.frame.size.width));
pageControl.currentPage = pageNumber;
Run Code Online (Sandbox Code Playgroud) 我有一个屏幕,我在自我视图中添加了1个滚动视图.标签栏和导航栏都在那里,对于iPhone 4,视图高度为455.I在滚动视图上添加了更多内容.滚动视图和自我视图的高度相同.但是当我无法为滚动视图设置内容大小时.即使我也设置它不工作.请帮助我.谢谢
使用自动布局时,我的问题与其他'Swift UIScrollView'问题略有不同:
问题:与其他人不同,当我运行我的应用程序时,它会滚动.我的问题是滚动切断了20-30%的内容.我可以看到按钮确实构建并且在那里,但是当我放开它时,滚动回到假底部,这会切断我的内容!几天来,我一直在努力修复它以滚动整个高度,但它继续切断!!
app的描述:我使用自动布局来布局6个按钮和标签.每个按钮都是一个矩形图像,正下方有一个标签.(对不起,该网站不会让我发布图片!)
我的意见安排如下:MainView> ScrollView> ContentView>按钮和标签
我将我的contentView固定到我的ScrollView,并将我的ScrollView固定到我的MainView.我的按钮和标签都有正确构建的约束,以创建一个如下所示的列表:
矩形按钮下方的标签间距矩形按钮下方的标签间距等.
谁能告诉我为什么我不能滚动视图的全长?
嘿伙计们我在谷歌上搜索了一下,并在这里阅读了一些关于堆栈溢出的主题,但没有一个云真的帮助我,所以我希望你能帮助我.我有一个UIWebView显示本地保存的PDF,它工作得很好,但我也想在加载PDF时设置缩放级别.我这样解决了.
override func viewDidAppear(animated: Bool) {
WebView.scalesPageToFit = true
if(defaults.objectForKey("positionY") != nil){
WebView.scrollView.setZoomScale(defaults.objectForKey("zoomlevel") as! CGFloat, animated: false)
let offest = CGPoint(x: defaults.objectForKey("positionX") as! CGFloat, y: defaults.objectForKey("positionY") as! CGFloat)
WebView.scrollView.setContentOffset(offest, animated: false)
print(defaults.objectForKey("zoomlevel") as! CGFloat)
}
Run Code Online (Sandbox Code Playgroud)
但这并不是很好,因为它对用户来说看起来很糟糕,所以我试图将我的代码移动到ViewWillAppear,但是它不再起作用了,并且pdf没有缩放.感谢任何解决方案的想法:)
编辑,因为我在下面写了一条评论,我在打印后打印了Zoomscale的值.
WebView.scrollView.setContentOffset(offest, animated:false)
println(defaults.objectForKey("zoomlevel") as! CGFloat)
println(WebView.scrollView.zoomScale)
Run Code Online (Sandbox Code Playgroud)
如果我在ViewWillAppear或ViewDidLoad中执行此操作,则第一个值是保存的值,如1.82366,第二个值仍为1.0.如果我在ViewDidAppear中调用它,则第一个和第二个值相等,除了View的第一个外观(app start).因此,如果它启动App,它就像上面描述的ViewWillAppear一样,但如果我通过segue从另一个ViewController返回,它适用于ViewDidAppear.
这是我的代码
类ViewController:UIViewController {
@IBOutlet weak var d: UIScrollView!
let numberOfButtons = 50
override func viewDidLoad() {
super.viewDidLoad()
for index in 0..<self.numberOfButtons {
let frame1 = CGRect(x: 20 + index, y: 20 + index, width: 45, height: 45 )
let button = UIButton()
button.frame = frame1
button.titleLabel?.text = "asdfasdf"
self.d.addSubview(button)
}
}
Run Code Online (Sandbox Code Playgroud)
非常简单,当我运行模拟时,在滚动视图中看不到任何按钮。
我这样做是因为我只需要有一个滚动视图,其中包含比模拟可以包含的更多的项目,只需要检查滚动内容即可
我想使用swift在ios中创建这样的堆叠视图.是否可以通过使用uicollectionview或其他东西来实现这一目标?有人能指出我正确的方向吗?
我基本上想要的是类似于火种如何工作的东西.(是的,我已经看过这个库,但我想要一些简单而不使用现有解决方案)
大家好,我已经调试了这个问题很长一段时间但到目前为止没有运气.我在这里迷失了,并且不知道造成这次崩溃的原因以及如何解决它.如果有人能为我提供一些帮助,我将非常感激,非常感谢!
我准备了一个示例项目来在GitHub上演示这个问题.
方案如下:
有两个视图控制器,即根视图和模态视图,每个视图控制器都有一个自定义滚动视图(即类SubScorllView)作为子视图,模态视图有一个用于关闭模态视图的按钮.
滚动视图是UIScrollView的子类,每个子类都有相应的委托协议,它们的类层次结构如下:
UIScrollView的
∟SuperScrollView
.....∟SubScrollView
该应用程序以非常简单的方式启动和运行,在AppDelegate的didFinishLaunchingWithOptions中:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.backgroundColor = [UIColor blackColor];
RootViewController * rootVC = [[RootViewController alloc] init];
self.navVC = [[UINavigationController alloc] initWithRootViewController:rootVC];
self.navVC.navigationBarHidden = TRUE;
self.window.rootViewController = self.navVC;
[self.window makeKeyAndVisible];
ModalViewController *modalVC = [[ModalViewController alloc] init];
[self.navVC presentViewController:modalVC animated:YES completion:nil];
return YES;
}
Run Code Online (Sandbox Code Playgroud)
并且视图是从xib文件加载的,滚动视图的委托也在其中设置,并且有一些关于启动和设置滚动视图子类的委托的方法的覆盖.
当我通过单击模态视图中的"关闭"按钮关闭模态视图时出现问题,单击该按钮时,会发生以下情况:
- (IBAction)didPressedCloseButton:(id)sender {
self.subScrollView.delegate = nil;
[self dismissViewControllerAnimated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud)
该应用程序崩溃在以下部分SuperScrollView:
- (void)setDelegate:(id<SuperScrollViewDelegate>)delegate …Run Code Online (Sandbox Code Playgroud) uiscrollview ×10
ios ×9
swift ×5
objective-c ×4
autolayout ×2
xcode ×2
constraints ×1
scroll ×1
uibutton ×1
uiimage ×1
uiimageview ×1
zoom ×1