Titanium JIRA Archive
Titanium SDK/CLI (TIMOB)

[TIMOB-26396] iOS12: BubbleParent not working with Scrollview on SDK 7.4.0 GA

GitHub Issuen/a
TypeBug
Priorityn/a
StatusOpen
ResolutionUnresolved
Affected Version/sn/a
Fix Version/sn/a
Componentsn/a
LabelsengSchedule, ios
ReporterNirmal
AssigneeVijay Singh
Created2018-09-18T19:41:08.000+0000
Updated2019-03-26T20:51:04.000+0000

Description

We have signature drawing panel inside of scrollview. To stop scrolling on outer scrollview while drawing , we have put bubbleParent="false" on signature drawing webview. Until SDK 7.3.1 GA and XCODE 9.2 , signature drawing was working fine. See [^SDK_7.3.1 GA.mov] But with SDK 7.4.0 GA and XCODE 10, the outer scrollview is scrolling. See [^SDK_7.4.0 GA.mov] To Reproduce Steps to reproduce the behavior, e.g.: Build app on SDK 7.4.0 Try drawing a signature in white box See entire page scrolls. Page shouldn't scroll while signing. Expected behavior As Sign widget has bubbleParent="false", scrolling should not happen on parent view. It works as expected on SDK 7.3.1 GA. But breaks on SDK 7.4.0 GA Environment Titanium SDK version: SDK 7.4.0 GA CLI version: 7.0.6 A Test project demonstrating this issue can be found here: https://github.com/nirmaljpatel/TitaniumTestApp

Attachments

FileDateSize
SDK_7.3.1 GA.mov2018-09-18T19:35:31.000+0000349607
SDK_7.4.0 GA.mov2018-09-18T19:35:55.000+00001418240

Comments

  1. Vijay Singh 2018-09-19

    I tried to run the attached test app in this ticket and it is behaving same in 7.3.0 and 7.4.0 for me. Behaviur is same as attached SDK_7.4.0 GA.mov . [~ewieber]/[~smohammed] Can you please test at your end and let me know the result. Thanks!
  2. Hans Knöchel 2018-09-19

    There might be an issue between iOS 11.2 (Xcode 9.2) and iOS 11.3+ (Xcode 9.3+). [~Nirmalkumar_Patel] Can you run this test on a iOS 11.3/11.4 device and let us know? I don't think this is a iOS 12 regression, but still a bug.
  3. Samir Mohammed 2018-09-19

    [~vijaysingh], [~hknoechel] I can reproduce this issue on a device running iOS 11.4 using SDK version 7.3.1.GA and I can also reproduce this issue on a device running iOS 12 on SDK version 7.4.0.GA. This was tested by using the example app mentioned in the description and by using Xcode 10.
  4. Nirmal 2018-09-19

    Here's a summary of testing on different SDK - Xcode combinations | SDK | CLI | Xcode | Test Device (iOS) | Result | |7.3.1.GA| 7.0.6 | 9.2 | 12, 11.3, 11.4.1 | Pass | |7.4.0.GA| 7.0.6 | 9.2 | 12, 11.3, 11.4.1 | Pass | |7.3.1.GA| 7.0.6 | 9.4 | 12, 11.3, 11.4.1 | Fail | |7.4.0.GA| 7.0.6 | 9.4 | 12, 11.3, 11.4.1 | Fail | |7.4.0.GA| 7.0.6 | 10 | 12, 11.3, 11.4.1 | Fail |
  5. Nirmal 2018-09-20

    Hi Hans, is this considered a bug to be fixed?
  6. Vijay Singh 2018-09-28

    Tested it on iOS 11.1 with Xcode 10. It is working fine. This bug seems to introduced due to some change in WebView in iOS 11.3+ (Xcode 9.3+) from Apple. We faced a WebView related bug TIMOB-25762 in iOS 11.3+ (Xcode 9.3+). I'll look in this.
  7. Vijay Singh 2018-10-17

    Simple test case -
       var win = Ti.UI.createWindow({
           backgroundColor: '#fff'
       });
       
       var scrollView = Ti.UI.createScrollView({
           height: Ti.UI.FILL,
           width: Ti.UI.FILL
       });
       
       var outerView = Ti.UI.createView({
           layout: 'vertical'
       })
       
       var redView = Ti.UI.createView({
           backgroundColor: 'red',
           height: 200,
           width: Ti.UI.FILL
       });
       outerView.add(redView);
       
       var greenView1 = Ti.UI.createView({
           backgroundColor: 'green',
           height: 200,
           width: Ti.UI.FILL
       });
       outerView.add(greenView1);
       
       var whiteView = Ti.UI.createView({
           backgroundColor: 'white',
           height: 150,
           width: 300
       });
       greenView1.add(whiteView);
       
       var webContainerView = Ti.UI.createView({
           backgroundColor: 'white',
           height: '99%',
           width: '99%',
           top: '1%',
           left: '1%',
           reight: '1%',
       });
       
       var webView = Ti.UI.createWebView({
           left: '0%',
           disableBounce: true,
           willHandleTouches: false,
           url: 'signature.html'
       });
       webContainerView.add(webView);
       whiteView.add(webContainerView);
       
       
       var yellowView = Ti.UI.createView({
           backgroundColor: 'yellow',
           height: 200,
           width: Ti.UI.FILL
       });
       outerView.add(yellowView);
       
       scrollView.add(outerView);
       win.add(scrollView);
       win.open();
       
       var saveCallback = null;
       
       var saveSignHdlr = function (evt) {
               Ti.App.removeEventListener('app:saveSign', saveSignHdlr);
               saveCallback(evt.inputArray);
       };
       
       function saveSign(callback){
           Ti.API.log('SignWidget', 'saveSign() invoked...');
           saveCallback = callback;
           Ti.App.addEventListener('app:saveSign', saveSignHdlr);
           Ti.App.fireEvent('app:signatureSave', {message : 'event fired from Titanium, for Signature Save'});
       };
       
       function clearSign(){
           Ti.API.log('SignWidget', 'clearSign() invoked...');
           Ti.App.fireEvent('app:signatureClear', {
                   message : 'event fired from Titanium, for Signature Clear'
               });
       };
       
       function getSign(callback) {
           Ti.API.log('SignWidget', 'getSign() invoked...');
           saveSign(callback);
       }
       

JSON Source